Andorid之MediaPlayer和AudioTrack播放Audio的区别与联系
生活随笔
收集整理的這篇文章主要介紹了
Andorid之MediaPlayer和AudioTrack播放Audio的区别与联系
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
播放聲音可以用MediaPlayer和AudioTrack,兩者都提供了java API供應用開發(fā)者使用。雖然都可以播放聲音,但兩者還是有很大的區(qū)別的。
其中最大的區(qū)別是MediaPlayer可以播放多種格式的聲音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer會在framework層創(chuàng)建對應的音頻解碼器。
而AudioTrack只能播放已經解碼的PCM流,如果是文件的話只支持wav格式的音頻文件,因為wav格式的音頻文件大部分都是PCM流。AudioTrack不創(chuàng)建解碼器,所以只能播放不需要解碼的wav文件。當然兩者之間還是有緊密的聯(lián)系的,MediaPlayer在framework層還是會創(chuàng)建AudioTrack,把解碼后的PCM數(shù)流傳遞給AudioTrack,AudioTrack再傳遞給AudioFlinger進行混音,然后才傳遞給硬件播放。
所以是MediaPlayer包含了AudioTRack。
通過查看API可以知道,MediaPlayer提供了5個setDataSource方法,分為三類,一類是傳遞播放文件的字符串路徑作為參數(shù),例如直接取sd卡里mp3文件的路徑,一類是傳遞播放文件的FileDescriptor文件描述符作為播放的id,例例如從db中查詢的音頻文件的id,就可以直接賦給MediaPlayer進行播放。還有一類是Uri類型的資源文件,用于播放content uri文件。
總結
以上是生活随笔為你收集整理的Andorid之MediaPlayer和AudioTrack播放Audio的区别与联系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Andorid之华为手机开发模式不打印日
- 下一篇: TCP/IP模型的各层的作用