音频渲染

音频渲染

Android的SDK(指的是Java层提供的API,对应的NDK是Native层提供的API,即C或者C++层可以调用的API)提供了3套音频播放的API,分别是:MediaPlayerSoundPoolAudioTrack。这三个API的使用场景各不相同,简单来说具体如下。

  • MediaPlayer:适合在后台长时间播放本地音乐文件或者在线的流式媒体文件,它的封装层次比较高,使用方式比较简单。
  • SoundPool:适合播放比较短的音频片段,比如游戏声音、按键声音、铃声片段等,它可以同时播放多个音频
  • AudioTrack:适合低延迟的播放,是更加底层的API,提供了非常强大的控制能力,适合流媒体的播放等场景,由于其属于底层API,所以需要结合解码器来使用。

Android的NDK提供了OpenSL ES的C语言的接口,可以提供非常强大的音效处理、低延时播放等功能,比如在Android手机上可实现实时耳返的功能。

AudioTrack的工作流程

  1. 根据音频参数信息,配置出一个AudioTrack的实例。
  2. 调用play方法,将AudioTrack切换到播放状态。
  3. 启动播放线程,循环向AudioTrack的缓冲区中写入音频数据。
  4. 当数据写完或者停止播放的时候,停止播放线程,并且释放所有资源。
原创文章 10 获赞 9 访问量 411

猜你喜欢

转载自blog.csdn.net/qq_34712399/article/details/105879418
今日推荐