anroid AudioTrack 基本使用

AudioTrack 是android上面的用于pcm 音频数据播放的类。在android系统中AudioTrack其实算是数据的提供方,真正的pcm播放是在AudioFlinger中,这个具体机制后续再更新。这里只记录下AudioTrack的基本使用。

AudioTrack的创建:

// 初始化AudioTrack
        /**
         * 参数:
         * 1.streamType
         *   STREAM_ALARM:警告声
         *   STREAM_MUSCI:音乐声,例如music等
         *   STREAM_RING:铃声
         *   STREAM_SYSTEM:系统声音
         *   STREAM_VOCIE_CALL:电话声音
         *
         * 2.采样率
         * 3.声道数
         * 4.采样精度
         * 5.每次播放的数据大小
         * 6.AudioTrack中有MODE_STATIC和MODE_STREAM两种分类。
         */

//获得硬件缓冲流大小
mBufferSize = AudioTrack.getMinBufferSize(samplerate, channelNum, bit_depth);

mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, mSampleRate, mChannel,mBitFormat,mBufferSize, AudioTrack.MODE_STREAM);

AudioTrack支持2种播放模式:MODE_STATIC和MODE_STREAM。
* STATIC的模式是一开始创建的时候,就把音频数据放到一个固定的buffer,然后直接传给audiotrack,后续就不用一次次得write了。AudioTrack会自己播放这个buffer中的数据。这种方法对于铃声等内存占用较小,延时要求较高的声音来说很适用。
* STREAM的意思是由用户在应用程序通过write方式把数据一次一次得写到audiotrack中。意味着你只需要开启播放后 后续使用write方法(AudioTrack的方法)写入buffer就行。

AudioTrack启动:

// play之后直接write数据就行
mAudioTrack.play();

AudioTrack停止:

mAudioTrack.stop();

AudioTrack资源的释放:

mAudioTrack.release();

关于AudioTrack的细节和minBuffSize的获取,可以参考:
http://blog.csdn.net/xuesen_lin/article/details/8805168
http://blog.csdn.net/njuitjf/article/details/7638579
http://www.cnblogs.com/innost/archive/2011/01/09/1931457.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值