1

我构建了 soxAndroid并且我正在使用生成的二进制文件,即sox, rec, play and soxi通过将它们作为二进制文件安装在我的应用程序中直接在我的应用程序中生成。

我可以sox直接调用命令,但是调用命令时遇到问题rec

我使用了以下命令,rec -r 8000 -c 2 output.wav 但它没有说sox is not foundor sox is expected but is not found

当我在命令行中使用上面的 rec 命令时,它在 Ubuntu 中完美运行

请注意,我可以sox成功使用与二进制相关的操作,但我无法使用与rec二进制相关的命令。

最初我认为问题可能是由于 Android 施加的权限,所以我将这些权限包括在内,manifest.xml但无济于事。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>

我做了一些研究并得到了这个链接,它在使用 Sox 播放和录制部分中说可能有一些 Linux 系统不rec直接接受命令。

我听从了他的建议,并在命令中附加了padspetc,但它仍然不起作用。

所以我的问题是如何在Android系统上成功调用rec命令,有没有人试过这个?

4

1 回答 1

1

rec, play,soxisox二进制文件的符号链接。(或者,在不支持符号链接的平台上,它们都是相同二进制文件的完全相同的副本。)根据调用它的名称,SoX 具有不同的默认行为。

您设备上的符号链接似乎有问题。也许他们指向了错误的道路?试试你能不能解决这个问题。

您的另一个选择是将sox二进制文件用于所有任务。rec -r 8000 -c 2 output.wav实际上与sox -d -r 8000 -c 2 output.wav-d是默认音频设备)相同。对于播放,类似地,play somefile与 相同sox somefile -d

于 2013-05-01T21:38:05.203 回答