Android 獲取多媒體信息

歡迎訪問個人博客:https://glumes.com

在做多媒體應(yīng)用開發(fā)時有滑,往往需要獲取到多媒體文件的相關(guān)信息。

Android 提供了 MediaMetadataRetriever 類來獲取輸入媒體文件的幀(Frame)和元數(shù)據(jù)(Meta data)睹耐。

使用起來比較簡單刑然,所以使用范圍也有限制缔刹,步驟如下:

1、聲明并初始化 MediaMetadataRetriever 類杀迹。
2亡脸、設(shè)置數(shù)據(jù)源
3、獲取想要的信息

MediaMetadataRetriever  metadataRetriever = new MediaMetadataRetriever();
metadataRetriever.setDataSource(AUDIO_FILE);
// 獲得時長
metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)
// 獲得名稱
metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE)
// 獲得媒體類型
metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE)
// 獲得碼率
metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_BITRATE)

使用 extractMetadata 方法就能獲得很多相關(guān)信息了佛南,具體到哪些內(nèi)容可以參考源碼里面列舉的常量梗掰。

除此之外,對于音頻和視頻文件還能獲取其他的一些內(nèi)容嗅回。

獲取音頻相關(guān)信息

對于音頻文件及穗,比如 MP3 文件,我們還可以獲取到 MP3 的專輯圖像绵载。

    byte[] imageData = metadataRetriever.getEmbeddedPicture();
    try {
        mBinding.audioCover.setImageBitmap(BitmapFactory.decodeByteArray(imageData, 0, imageData.length));
    } catch (Exception e) {
    }

使用 getEmbeddedPicture 方法可以獲取到圖像的字節(jié)數(shù)組埂陆,再解碼到圖像就好了。

get_audio_info

獲取視頻的幀圖像

對于視頻文件娃豹,比如 MP4 文件焚虱,還可以獲取到 MP4 文件的某個時刻的一幀圖像。

videoFrame.setImageBitmap(metadataRetriever.getFrameAtTime(1*1000*1000, MediaMetadataRetriever.OPTION_NEXT_SYNC))

使用 getFrameAtTime 方法即可懂版,傳入具體的某個時刻的參數(shù)鹃栽,第二個參數(shù)是獲取幀的選項。

對于時刻參數(shù)要注意的是:單位是微秒躯畴,而不是我們常用的毫秒民鼓。而通過 extractMetadata 方法得到的多媒體文件時間長度 duration 單位卻是毫秒。

對于第二個參數(shù)獲取幀的選項蓬抄,有如下幾種:

  • OPTION_PREVIOUS_SYNC
  • OPTION_NEXT_SYNC
  • OPTION_CLOSEST_SYNC
  • OPTION_CLOSEST (性能較差)

主要差別就是在獲取指定時間點前還是后丰嘉。因為在指定時間點不一定有對應(yīng)的幀。

用了這個方法嚷缭, 就可以做到獲取 MP4 文件任意時間點的幀圖像了饮亏。

get_video_info

代碼參考 Github 地址

限制

原生的 MediaMetadataRetriever還是有不少限制的耍贾,比如支持的多媒體文件格式少,而且還不能支持網(wǎng)絡(luò)鏈接的多媒體文件路幸。

這個時候荐开,就可以推薦使用了開源的 FFmpegMediaMetadataRetriever 庫,基于 FFmpeg 開發(fā)的劝赔。使用的接口如安卓原生一致誓焦,但功能更強大了。

對于視頻幀的補充

1着帽、視頻幀率

每秒顯示的幀數(shù) FPS。

2移层、幀數(shù)

一秒鐘時間里傳輸?shù)膱D片的量仍翰,也可以理解為圖形處理器每秒鐘能夠刷新幾次。

每一幀都是靜止的圖像观话∮杞瑁快速連續(xù)地顯示幀便形成了運動的假象。

3频蛔、碼率

在壓縮視頻時給這個視頻指定一個參數(shù)灵迫,用以告訴壓縮軟件期望的壓縮后的視頻的大小。

比特率是指每秒傳送的比特數(shù)晦溪。單位為 bps瀑粥,比特率越高,傳送的數(shù)據(jù)速度越快三圆。

一起交流學(xué)習(xí)狞换,答疑解惑,有問題舟肉,我們星球見~~~


圖形/圖像/音視頻交流

覺得文章還不錯修噪,可以關(guān)注一下微信公眾號【紙上淺談】

Wechat
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市路媚,隨后出現(xiàn)的幾起案子黄琼,更是在濱河造成了極大的恐慌,老刑警劉巖整慎,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脏款,死亡現(xiàn)場離奇詭異,居然都是意外死亡院领,警方通過查閱死者的電腦和手機弛矛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來比然,“玉大人丈氓,你說我怎么就攤上這事。” “怎么了万俗?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵湾笛,是天一觀的道長。 經(jīng)常有香客問我闰歪,道長嚎研,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任库倘,我火速辦了婚禮临扮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘教翩。我一直安慰自己杆勇,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布饱亿。 她就那樣靜靜地躺著蚜退,像睡著了一般。 火紅的嫁衣襯著肌膚如雪彪笼。 梳的紋絲不亂的頭發(fā)上钻注,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機與錄音配猫,去河邊找鬼幅恋。 笑死,一個胖子當(dāng)著我的面吹牛章姓,可吹牛的內(nèi)容都是我干的佳遣。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼凡伊,長吁一口氣:“原來是場噩夢啊……” “哼零渐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起系忙,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤诵盼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后银还,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體风宁,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年蛹疯,在試婚紗的時候發(fā)現(xiàn)自己被綠了戒财。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡捺弦,死狀恐怖饮寞,靈堂內(nèi)的尸體忽然破棺而出孝扛,到底是詐尸還是另有隱情,我是刑警寧澤幽崩,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布苦始,位于F島的核電站,受9級特大地震影響慌申,放射性物質(zhì)發(fā)生泄漏陌选。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一蹄溉、第九天 我趴在偏房一處隱蔽的房頂上張望咨油。 院中可真熱鬧,春花似錦柒爵、人聲如沸臼勉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至囱晴,卻和暖如春膏蚓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畸写。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工驮瞧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人枯芬。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓论笔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親千所。 傳聞我的和親對象是個殘疾皇子狂魔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,566評論 2 349