MediaRecorder和AudioRecord的区别和联系
来源:互联网 发布:java实现md5加密算法 编辑:程序博客网 时间:2024/06/04 19:46
播放声音可以用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文件。
0 0
- MediaRecorder和AudioRecord的区别和联系
- MediaRecorder和AudioRecord的区别和联系
- MediaRecorder和AudioRecord的区别和联系
- 浅谈Android下的AudioRecord 和 Mediarecorder区别
- & 和 &&的区别和联系
- Android Multimedia实战(六)音频 MediaRecorder和AudioRecord录音与MediaPlayer和AudioTrack播放
- Android两种录音方式MediaRecorder和AudioRecord实现了实时获取音量大小
- MOLAP_ROLAP_HOLAP的区别和联系
- &&和&的联系与区别
- 数据仓库和数据库的区别和联系
- ref和out的区别和联系
- 堆和栈的联系和区别
- HashMap 和 Hashtable 的区别和联系
- 堆和栈的区别和联系
- 文本文件和二进制文件的区别和联系
- fflush和fsync的联系和区别
- dll和exe的区别和联系
- UNICODE和_UNICODE的区别和联系
- c++primer 4.2指针(下)使用指针访问数组元素
- jquery笔记
- 面试题——银行业务调度系统
- 设计模式学习之装饰模式
- Android-drawable资源-ShapeDrawable
- MediaRecorder和AudioRecord的区别和联系
- Mysql常用命令行大全
- J2EE项目异常处理
- 远程线程注入引出的问题
- Android AndroidManifest属性
- Android Material Design之Toolbar与Palette实践
- linux压缩解压文件
- JSP中Forward和Redirect之间的区别
- 初始化一个数组