OpenSL 读取PCM音频文件

这里我们用OpenSl来直接读取PCM文件。

opensl本身就在NDK中,所以也不需要再引入其它的SO库,在CMAKE的target_link_libraries中链接这个库就行了:


OpenSL 读取PCM音频文件_第1张图片

在C++中,引用头文件:


这里先写好两个方法,一个是创建引擎:


OpenSL 读取PCM音频文件_第2张图片

另一个是PCM的回调,这个方法是,当播 放的音频通道没有数据时,就会调这个方法:

OpenSL 读取PCM音频文件_第3张图片

这里可以看出,当回调了这个方法时,就会向buf中写入一部份的 pcm文件,一直到写完为止。再将buf注入到音频通道中。

好了,现在开始来说具体的播放步骤:


OpenSL 读取PCM音频文件_第4张图片

这里就是用先写好的方法嘛。

开启第二步创建混音器:


OpenSL 读取PCM音频文件_第5张图片

设置缓冲队列

OpenSL 读取PCM音频文件_第6张图片

创建播放器

OpenSL 读取PCM音频文件_第7张图片

注意,这里设置回调函数时,就将PcmCall方法设入了。

最后设置了空数据进去,当作启动回调使用。 因为这里要先传点空数据进去,才会开启回调。

你可能感兴趣的:(OpenSL 读取PCM音频文件)