这里我们用OpenSl来直接读取PCM文件。
opensl本身就在NDK中,所以也不需要再引入其它的SO库,在CMAKE的target_link_libraries中链接这个库就行了:
在C++中,引用头文件:
这里先写好两个方法,一个是创建引擎:
另一个是PCM的回调,这个方法是,当播 放的音频通道没有数据时,就会调这个方法:
这里可以看出,当回调了这个方法时,就会向buf中写入一部份的 pcm文件,一直到写完为止。再将buf注入到音频通道中。
好了,现在开始来说具体的播放步骤:
这里就是用先写好的方法嘛。
开启第二步创建混音器:
设置缓冲队列
创建播放器
注意,这里设置回调函数时,就将PcmCall方法设入了。
最后设置了空数据进去,当作启动回调使用。 因为这里要先传点空数据进去,才会开启回调。