Android SDK 提供的3套音频播放的API之窥探AudioTrack(1)

本文探讨了Android SDK中的AudioTrack类,详细介绍了如何通过AudioTrack.Builder进行初始化,包括设置AudioAttributes、AudioFormat和缓冲区大小。区分了静态模式(MODE_STATIC)和流模式(MODE_STREAM)的使用场景,强调了流模式适用于连续数据流,而静态模式适用于短声音的低延迟播放。此外,还展示了初始化和播放音频的关键代码片段。
摘要由CSDN通过智能技术生成
  • sampleRateInHz:

参数sampleRateInHz:采样率,有8000、20100等,一般来说越高音质越好,但文件体积就越大

  • channelConfig:

参数channelConfig:声道,单声道CHANNEL_OUT_MONO 和双声道 CHANNEL_OUT_STEREO

  • audioFormat:

参数audioFormat:采样点大小,只有ENCODING_PCM_16BIT 和 ENCODING_PCM_8BIT两种选择,意思是一个采集点16bit或8bit

  • bufferSizeInBytes:

参数bufferSizeInBytes:AudioTrack一次所能接收最小的声音资源大小,通过getMinBufferSize函数获取,用于读取音频数据的内部缓冲区的总大小(以byte为单位)。

  • mode:

参数mode:有MODE_STATIC和MODE_STREAM两种分类。

1.2、初始化方式:AudioTrack.Builder
  • setAudioAttributes 设置AudioAttributes 实例,不能为空

  • setUsage 设置 AudioTrack 的使用场景;

  • setContentType 设置输入的音频文件内容的类型;

  • setAudioFormat AudioFormat是咧 用于描述播放的数据格式,AudioFormat 中包含了编码格式,声道和采样率等,不能为空

  • setEncoding 设置 采样格式

  • setSampleRate 设置采样率

  • setChannelMask设置声道

  • setTransferMode int模式二选一 MODE_STATIC 与 MODE_STREAM

静态模式(MODE_STATIC) & 流模式(MODE_STREAM)

在流模式下,应用程序使用write()方法之一向AudioTrack写入连续的数据流。
当数据从Java层传输到本机层并排队等待回放时,它们会阻塞并返回。
流媒体模式在播放音频数据块时最有用

当处理适合内存且需要以最小延迟播放的短声音时,应该选择静态模式。
因此,静态模式更适合那些经常玩的UI和游戏声音,并且开销尽可能小。

  • setBufferSizeInBytes setBufferSizeInBytes:int: 用于读取音频数据的内部缓冲区的总大小(以byte为单位)。

如果 mode 是 MODE_STATIC ,其为音频最大长度; 如果是 MODE_STREAM ,其值要大于等于接收流的最小缓冲区大小, 建议使用 getMinBufferSize(int, int, int) 方法来估算 AudioTrack的实例在流模式下的最小缓冲区大小.

1.3、初始化代码

private AudioTrack mAudioTrack;
private int SM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值