快手 · 移动端音视频开发实战
展晓凯
快手回森技术负责人
12246 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 25 讲
快手 · 移动端音视频开发实战
15
15
1.0x
00:00/00:00
登录|注册

03|Android平台音频渲染与技术选型

你好,我是展晓凯。
前两节课我们一起学习了 iOS 平台的音频渲染技术,深入地了解了 AudioQueue 和 AudioUnit 两个底层的音频框架,了解这些音频框架便于我们做技术选型,可以给我们的应用融入更强大的功能。那除了 iOS 平台外,Android 平台的音视频开发也有着相当大的需求,所以这节课我们一起来学习 Android 平台的音频渲染技术。
由于 Android 平台的厂商与定制 Rom 众多,碎片化特别严重,所以系统地学习音频渲染是非常重要的。这节课我会先从音频渲染的技术选型入手,向你介绍 Android 系统上渲染音频方法的所有可能性,然后依次讲解常用技术选型的内部原理与使用方法。

技术选型及其优缺点

Android 系统为开发者在 SDK 以及 NDK 层提供了多种音频渲染的方法,每一种渲染方法其实也是为不同的场景而设计的,我们必须要了解每一种方法的最佳实践是什么,这样在开发工作中才能如鱼得水地使用它们。

SDK 层的音频渲染

Android 系统在 SDK 层(Java 层提供的 API)为开发者提供了 3 套常用的音频渲染方法,分别是:MediaPlayer、SoundPool 和 AudioTrack。这三个 API 的推荐使用场景是不同的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了Android平台上的音频渲染技术及技术选型。首先,文章详细讨论了SDK层的音频渲染方法,包括MediaPlayer、SoundPool和AudioTrack的适用场景和特点,以及AudioTrack的工作流程和配置参数。接着,文章重点介绍了NDK层的音频渲染方法,包括OpenSL ES和AAudio的设计和适用性,以及OpenSL ES的对象和接口的使用方法。此外,文章还提到了Oboe作为一种开源的音频渲染框架,能够结合上述方法并具有适配性和面向未来的特点。 Oboe框架使用和AAudio近乎一致的API接口为开发者封装了底层的实现,自动地根据当前Android系统来选择OpenSL ES还是AAudio,并提供了接口供开发者自由选择底层的实现。文章还详细介绍了如何将Oboe集成到工程中,并展示了在工程中使用Oboe的方法,包括创建AudioStream、设置Callback、播放音频和关闭AudioStream等步骤。 通过本文的阅读,读者能够全面了解Android平台上的音频渲染方法及其使用方式,为开发工作提供了重要参考。文章还对Android开发中的其他常用音频框架进行了简单介绍,为读者提供了更多选择。总的来说,本文以清晰的实例和详细的步骤,帮助读者掌握了音频渲染技术的核心知识,为他们在实际开发中提供了有力的支持。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《快手 · 移动端音视频开发实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • bentley
    请教教老师一个问题:文中提到AAudio在一些品牌的特殊 Rom 版本中适配性不是特别好,方便说一下是那些品牌的什么ROM吗?

    作者回复: 这个不太好枚举全,并且根据不同的场景也有不同,比如仅仅播放问题不大,而做录音又有区别,如果再加上耳返又有所不同。

    2022-10-25归属地:北京
  • peter
    请教老师两个问题: Q1:具有“音乐弹幕”功能的APP叫什么? 开篇词中老师提到“我所在的团队开发并维护了唱鸭、鲸鸣、虾米音乐等产品。当时我们将弹唱的实时耳返做到了业界最佳并独创了音乐弹幕的交互形式”, 请问:具有“音乐弹幕”功能的APP的完整名字叫什么? 我想下载一个。知道APP名字后我可以根据名字从应用市场上搜。 Q2:文中介绍的安卓自身的音频组件能实现“混音”功能吗? SDK中有MediaPlayer、SoundPool 和 AudioTrack三种方法。Native层有OpenSL ES、AAudio,请问这些方法能实现音频的“混音”功能吗?(即:在一个音频上再叠加另外一个音频)。

    作者回复: A1:可以在应用商店搜索【回森】这个App。 A2:在Android平台上混音功能一般都是自己用代码实现,可以将两个PCM的buffer Mix起来,后续源码公布了之后,可以查看源码中的混音公式。

    2022-07-29归属地:北京
    2
  • 打卡主持人
    老师讲的很详细,最近新的很需要这门技术加持😭

    作者回复: 系统了解了各项知识点之后,需要多加练习、实践,后续我也会把一些章节的源码整理发布到github上。

    2022-07-29归属地:北京
  • 逝去
    我去。我以为是视频 原来是音频
    2023-07-28归属地:广东
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部