Android多媒體框架中幾個(gè)重要的類

與iOS中強(qiáng)大的AVFoundation框架相比,Android framework中提供的有關(guān)多媒體處理的類可謂屈指可數(shù),但總比沒(méi)有好吧。今天我們就來(lái)談?wù)勥@幾個(gè)類。

說(shuō)明
這里提到的多媒體處理主要是指音視頻處理。包括音視頻的裁剪、合并;視頻畫面的各種變換,旋轉(zhuǎn)、縮放、翻轉(zhuǎn);視頻濾鏡;音視頻的播放,快速、慢速、倒序播放等等。

主要涉及到的類有:

  1. MediaExtractor:媒體提取器
  2. MediaCodec:編解碼器
  3. MediaMuxer:媒體混合器
  4. MediaMetadataRetriever: 獲取音視頻信息的類
  5. MediaFormat: 包含音視頻幀信息的類
  6. GLSurfaceView: 展示openGL渲染的View
  7. OpenGL相關(guān)的類

MediaExtractor 在Android4.1(API16)加入??梢詮囊欢我粢曨l中提取出一幀一幀的數(shù)據(jù),與MediaMuxer配合使用可以完成視頻的裁剪和合并,與MediaCodec、GLSurfaceView配合使用可以完成視頻的播放。

MediaCodec 在Android4.1(API16)加入。在Android4.3(API18)提供輸入可以為Surface。在Android5.0(API21)又增加了異步處理模式。它是一個(gè)低等級(jí)的媒體編解碼器,可以作為編碼器,也可以作為解碼器。?可攻可受,嘿嘿嘿。是音視頻處理中最為核心的類。

由于相關(guān)文檔在以前不是很完善,來(lái)自Android媒體團(tuán)隊(duì)的fadden(現(xiàn)已不在)維護(hù)了一個(gè)網(wǎng)站 http://bigflake.com/mediacodec/ 。上面有大量的相關(guān)資源。此外在stackoverflow上面只要是MeidaCodec相關(guān)的問(wèn)題隨處可見(jiàn)fadden的身影。感謝fadden?,F(xiàn)在官方文檔已經(jīng)相當(dāng)詳細(xì)了,不過(guò)都是英文的,對(duì)于閱讀困難的人,國(guó)內(nèi)也有人進(jìn)行了翻譯。地址在這里。

MediaMuxer 在Android4.3(API18)??梢院铣蒑P4格式的視頻,輸入源通常為從MediaExtractor或者M(jìn)ediaCodec提供的已編碼的數(shù)據(jù)。

MediaMetadataRetriever 主要用來(lái)獲取視頻的方向信息。在合成視頻時(shí),可糾正視頻方向。此外還可以獲取視頻某一幀畫面的bitmap,前提必須是android支持的視頻格式。

MediaFormat 內(nèi)部持有一個(gè)包含音視頻幀信息的map。

GLSurfaceView 可與MediaPlayer配合,完成視頻變換的各種效果實(shí)時(shí)預(yù)覽。

OpenGL是一門單獨(dú)的技術(shù),然而關(guān)于其在Android中使用的文檔和列子實(shí)在太少。唯一的一本書《OpenGL ES應(yīng)用開發(fā)實(shí)踐指南 Android卷》在網(wǎng)上也買不到,只能去淘寶買復(fù)印版。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容