Android 音频开发——AudioTrack播放

本文介绍了Android中AudioTrack类的音频播放,重点讨论流模式的使用。包括获取最小缓冲区大小、初始化AudioTrack对象、开始播放、写入数据、停止播放以及释放内存的步骤。讲解了AudioTrack在流模式下如何处理音频数据,以及在不同写入模式下的行为。还提供了相关代码示例链接。
摘要由CSDN通过智能技术生成

Android 音频——PCM转WAV
Android 音频开发——AudioRecord录音

 AudioTrack类用来管理、播放单个音频资源,它只能播放PCM数据,其他音频格式(aac、amr、opus、flac等)需要经过解码成PCM才能使用。

运行模式

AudioTrack可以运行两种模式:

  1. 流模式
  2. 静态模式

流模式
 可以将连续的数据流写入AudioTrack,进行播放。播放音频数据块时,这种模式最有用。
如:

  • 声音持续的时间太长,无法容纳在内存中;
  • 由于音频数据的特性(太大的采样率,每个采样的比特数…)而太大而无法容纳在内存中;
  • 在播放先前排队的音频时收到或生成的声音。

静态模式
 当处理很短的音频并且需要以最小延迟播放时,应该选择静态模式。对于经常播放的UI和游戏声音而言,静态模式将是首选方式,并且可能会产生最小的开销。

缓冲区

 当创建AudioTrack时,AudioTrack将初始化其关联的音频缓冲区。在构造期间指定的此缓冲区大小决定了AudioTrack在数据用尽之前可以播放多长时间。
 对于静态模式,此大小是可以从中播放的最大音频数据大小。
 对于流模式,数据将以小于等于此缓冲区大小的块的形式写入音频接收器。

AudioTrack播放

这里主要说一下AudioTrack的流模式使用。
基本步骤

  1. 获取最小缓冲区大小(创建AudioTrack对象所需);
  2. 创建AudioTrack对象;
  3. 调用AudioTrack play方法,开始播放。
  4. 写入音频数据;
  5. 停止播放
  6. 释放对象。

1 获取最小缓冲区大小

int minSize = AudioTrack.getMinBufferSize(sampleRate
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值