android 音频播放过程,一种Android系统中的音频播放方法与流程

cd67ebbf68baa73d3fefb617f4847dd6.gif

本申请涉及android系统技术,特别涉及一种android系统中的音频播放方法。

背景技术:

在android系统中,现有的使用audiotrack进行音频播放时,audiotrack应用与android系统平台的交互过程如图1所示,在图1中,minbuffer是android平台api返回值,告知应用当前需要配置给android平台的最小缓存数;trackbuffer为应用最终设置给平台的缓存数,需要保证trackbuffer>=minbuffer;write为应用向平台缓存中写数据,内部维护的已写数量总和;play是android平台api返回值,告知当前的播放进度;x是android平台内部的缓存,应用无法感知,对不同终端该值不同,需要缓存量大于x时才真正开始播放。

基于上述交互过程实现的音频播放流程具体包括:

1)应用在播放配置阶段创建audiotrack时,为audiotrack设置buffer大小为trackbuffer,为了能够正常播放,通常trackbuffer≥minbuffer;

2)在启动播放阶段,应用向trackbuffer中持续写入数据,当trackbuffer被填满后audiotrack开始播放;

3)在稳态播放过程中,当存在一帧待播放的音频数据时,应用记录已经送给平台的音频数write,同时不断通过api获取平台的播放进度play,判断如下:

a)若write–play≥trackbuffer,则认为平台的缓存已满,不作处理;

b)若write–play

4)判断若还存在待播放的音频数据,则继续执行步骤3,否则等待有新数据时再执行步骤3。

上述音频播放方式存在如下两个问题:

1、对于某些终端,当应用已经给audiotrack的buffer填充满t

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值