Andorid之MediaPlayer和AudioTrack播放Audio的区别与联系
2016-07-27 19:45
357 查看
播放声音可以用MediaPlayer和AudioTrack,两者都提供了java API供应用开发者使用。虽然都可以播放声音,但两者还是有很大的区别的。 其中最大的区别是MediaPlayer可以播放多种格式的声音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer会在framework层创建对应的音频解码器。 而AudioTrack只能播放已经解码的PCM流,如果是文件的话只支持wav格式的音频文件,因为wav格式的音频文件大部分都是PCM流。AudioTrack不创建解码器,所以只能播放不需要解码的wav文件。 当然两者之间还是有紧密的联系的,MediaPlayer在framework层还是会创建AudioTrack,把解码后的PCM数流传递给AudioTrack,AudioTrack再传递给AudioFlinger进行混音,然后才传递给硬件播放。 所以是MediaPlayer包含了AudioTRack。 通过查看API可以知道,MediaPlayer提供了5个setDataSource方法,分为三类,一类是传递播放文件的字符串路径作为参数,例如直接取sd卡里mp3文件的路径,一类是传递播放文件的FileDescriptor文件描述符作为播放的id,例例如从db中查询的音频文件的id,就可以直接赋给MediaPlayer进行播放。还有一类是Uri类型的资源文件,用于播放content uri文件。
相关文章推荐
- SDN+敏捷物联,助物联网快速落地
- 物联网大数据量频繁对MongoDB查询问题
- 物联网实训总结——简易的智能农场
- 物联网网关使用中国移动物联卡
- 在物联网中的应用3G4G移动通信
- iotop
- 全球首款工业物联网芯片渝“芯”一号在渝发布
- 物联网入口之一Android蓝牙4.0
- hdu 4609 3-idiots
- 5千米传输距离,Semtech LoRa扩频调制技术SX1276+MCU超远距离无线通信解决方案
- HDU 4609 3-idiots FFT+容斥
- 【FFT】HDU4609-3 idiots
- Microsoft Azure IoT Hub应用 – 第二部分:连接传感器以及 IoT 车辆
- 行百里者半九十,华为开发者大赛各参赛团队渐入佳境
- 打印机智能化大势所趋,推动办公室物联网建设
- 声明与鸣谢——《朱老师物联网大讲堂》
- HDU4609——3-idiots(FFT求卷积,留着以后学)
- 奇趣示波器应用之一——通过插线板识别用电器
- NB-IoT标准确定,物联网将腾飞
- 物联网加密