Android SDK 提供的3套音频播放的API之窥探AudioTrack,flutter人脸识别插件

本文深入探讨了Android SDK中的AudioTrack组件,包括初始化、主要方法、静态和流模式的播放,以及如何在游戏和UI中应用。同时提到了Flutter人脸识别插件的应用。
摘要由CSDN通过智能技术生成

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

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

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

1.3、初始化代码

private AudioTrack mAudioTrack;
private int SMPL = 44100;
private int mode = AudioTrack.MODE_STREAM;
//获取最小缓冲区大小
int minBufferSize = AudioTrack.getMinBufferSize(SMPL,//采样率
AudioFormat.CHANNEL_OUT_STEREO, //双声道
AudioFormat.ENCODING_PCM_16BIT //采样格式
);
public void initAudioTrack(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//AudioTrack.Builder
mAudioTrack = new AudioTrack.Builder()
//1、setAudioAttributes:AudioAttributes 实例,不能为空
.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)//setUsage 设置 AudioTrack 的使用场景;
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)//setContentType 设置输入的音频文件内容的类型;
.build())
//2、setAudioFormat:AudioFormat是咧 用于描述播放的数据格式,AudioFormat 中包含了编码
//格式,声道和采样率等,不能为空
.setAudioFormat(new AudioFormat.Builder()
.setEncoding(AudioFormat.ENCODING_PCM_16BIT)//采样格式
.setSampleRate(SMPL)//设置采样率
.setChannelMask(AudioFormat.CHANNEL_OUT_STEREO)//设置声道
.build())
//3、setTransferMode:int模式二选一 MODE_STATIC 与 MODE_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值