Android 音频相关

来源:互联网 发布:删除内置软件 编辑:程序博客网 时间:2024/06/02 06:00

1、音频采集
Android SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord,前者是一个更加上层一点的API,它可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3等)并存成文件,而后者则更接近底层,能够更加自由灵活地控制,可以得到原始的一帧帧PCM音频数据。

如果想简单地做一个录音机,录制成音频文件,则推荐使用 MediaRecorder,而如果需要对音频做进一步的算法处理、或者采用第三方的编码库进行压缩、以及网络传输等应用,则建议使用 AudioRecord,其实 MediaRecorder 底层也是调用了 AudioRecord 与 Android Framework 层的 AudioFlinger 进行交互的。

2、音频播放
Android SDK 提供了3套音频播放的API,分别是:MediaPlayer,SoundPool,AudioTrack,MediaPlayer 更加适合在后台长时间播放本地音乐文件或者在线的流式资源; SoundPool 则适合播放比较短的音频片段,比如游戏声音、按键声、铃声片段等等,它可以同时播放多个音频; 而 AudioTrack 则更接近底层,提供了非常强大的控制能力,支持低延迟播放,适合流媒体和VoIP语音电话等场景。

另外, ExoPlayer 这是google推荐用来替代 MediaPlayer的一个播放器

3、音频编码

Android 官方提供的音频编解码的 API,即 MediaCodec 类,Android 应用层统一由 MediaCodec API 来提供各种音视频编解码功能,由参数配置来决定采用何种编解码算法、是否采用硬件编解码加速等等

http://blog.51cto.com/ticktick/1749719
http://blog.51cto.com/ticktick/1750593
http://blog.51cto.com/ticktick/1760191

原创粉丝点击