是否可以直接从本机代码将 PCM 样本写入 Android 下的音频设备?我已经能够通过将数据发送到套接字并使用 AudioTrack 来重现 PCM 样本。是否可以通过直接从本机代码访问来避免所有通往音频设备的路径?谢谢!
问问题
3212 次
2 回答
4
是的,您可以尝试直接使用您的音频设备。该访问通过放置在 /dev/ 中的 Linux 虚拟设备节点进行。
在我的 HTC Desire 上,这将是
/dev/msm_pcm_out
不知道不同厂商的其他设备是怎么称呼这个设备的。不保证此设备节点在重新启动或操作系统更新后具有相同的名称。因此,一旦您的应用程序发布,您将有很多令人讨厌的修补工作要做。
警告执行以下命令将产生无限白噪声,除非您杀死“猫”程序或重新启动手机
命令(在有根电话上)
su
和
cat /dev/urandom > /dev/msm_pcm_out
手机扬声器会产生白噪声。由于 cat 是一个 C 程序,您应该能够分析源代码并使其适应您的程序。
问题是:您的设备需要植根才能实现这一点,以及您的应用程序应该在其上运行的每台设备。
我想Android方式是一种肮脏但最便携和最舒适的通过NDK播放声音的方式。
于 2011-05-02T20:50:57.067 回答
0
重新阅读这篇文章我问自己为什么我没有想到简单地使用 JNI 从本机代码中使用 AudioTrack ......这应该是最好的解决方案。
于 2013-03-19T07:17:04.493 回答