Android AudioTrack

名词

PCM
脉冲编码调制(Pulse Code Modulation,PCM)

A2DP
A2DP全名是Advanced Audio Distribution Profile 蓝牙音频传输模型协定。A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度

AudioTrack(Java空间)

AudioTrack在JNI层使用了Native的AudioTrack对象
1.new一个AudioTrack,使用无参的构造函数
2.调用set函数,把Java层的参数传进去,另外还设置了一个audiocallback回调函数
3.调用AudioTrack的start函数
4.调用了AudioTrack的write函数
5.工作完毕后,调用stop
6.最后就是Native对象的delete

flowControlFlag
1.对于音频输出来说,flowControlFlag对应着underrun状态,该状态是指生产者提供的数据的速度跟不上消费者使用数据的速度,消费者指的是音频输出设备,由于音频输出设备采用环形缓冲方式管理,当生产者没有及时提供新数据时,输出设备就会循环使用缓冲中的数据,这样会听到一段重复的声音,该现象称为“machinegun”,处理该情况一般方法是暂停输出,等数据准备好后再恢复输出。
2.对于音频输入,flowControlFlag对应着overrun状态,它的意思和underrun一样,只是生产者变成了音频输入设备,而消费者变成了Audio系统的AudioRecord。

Android按键音

android中,view的按键音类型为系统音频(STREAM_SYSTEM),而音量的大小与媒体音量(STREAM_MUSIC)绑定了起来。
参考:https://blog.csdn.net/love_xsq/article/details/50266819

随笔

Audio系统需要根据流类型找到对应的策略,再根据对应的策略找到合适的输出device,再根据device选择AF中的工作线程,AT根据得到的工作线程索引号,最终将在对应的工作线程中创建一个Track。之后AT的数据将有该线程负责处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值