是否可以直接从本机代码将PCM样本写入Android下的音频设备? 我已经能够通过将数据发送到套接字并使用AudioTrack来重现PCM样本。是否可以通过直接从本机代码访问来避免音频设备的所有这些路径? 谢谢!
答案 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 ......这应该是最好的解决方案。