从本机代码将PCM音频数据写入音频设备

时间:2011-03-01 19:16:10

标签: android native pcm

是否可以直接从本机代码将PCM样本写入Android下的音频设备? 我已经能够通过将数据发送到套接字并使用AudioTrack来重现PCM样本。是否可以通过直接从本机代码访问来避免音频设备的所有这些路径? 谢谢!

2 个答案:

答案 0 :(得分:4)

是的,您可以尝试直接使用音频设备。该访问适用于放置在/ dev /.

中的Linux虚拟设备节点

在我的HTC Desire上,这将是

/dev/msm_pcm_out

我不知道不同供应商的其他设备如何称呼此设备。在重新引导或OS更新后,无法保证此设备节点具有相同的名称。因此,一旦您的应用程序发布,您将需要做很多令人讨厌的修补工作。

警告执行以下命令将产生无限白噪声,除非您杀死“猫”程序或重启手机

命令(在根电话上)

su

cat /dev/urandom > /dev/msm_pcm_out

会从手机扬声器中产生白噪声。 由于cat是一个C程序,您应该能够分析源代码并使其适应您的程序。

问题是:您的设备需要植根才能实现这一点,以及您的应用程序应运行的每个设备。

我认为Android方式是一种肮脏但最便携且最舒适的方式来通过NDK播放声音。

答案 1 :(得分:0)

重读这个我问自己为什么我没想到只使用JNI从原生代码中使用AudioTrack ......这应该是最好的解决方案。