【问题标题】:How to get rec script of SOX to work on Android?如何让 SOX 的 rec 脚本在 Android 上运行?
【发布时间】:2013-01-29 08:08:55
【问题描述】:

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

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

我使用了以下命令,rec -r 8000 -c 2 output.wav 但它没有说sox is not foundsox 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"/>

我做了一些研究,得到了这个link,它在Using Sox to Play and Record部分说可能有一些Linux系统不直接接受rec命令。

我听从了他的建议,并在我的命令后面加上了padsp 等,但还是不行。

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

【问题讨论】:

  • 您能否分享一下您是如何为 android 生成二进制文件的,我正在尝试做同样的事情但没有成功。谢谢
  • @InonStelman 和 Arif Nadeem,你能分享我在 android 中获取 sox 二进制文件的过程吗?

标签: android android-ndk ffmpeg sox


【解决方案1】:

recplaysoxi 是到 sox 二进制文件的符号链接。 (或者,在不支持符号链接的平台上,它们都是相同二进制文件的完全相同的副本。)SoX 具有不同的默认行为,具体取决于调用它的名称。

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

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

【讨论】:

  • 我在想也许rec、play和soxi作为sh文件可以作为脚本运行
  • 确实没有涉及到 shell 脚本。试试ls -l /usr/bin/rec 看看它只是一个符号链接。 如果它们是您安装中的 shell 脚本,则它是修改后的版本。
猜你喜欢
  • 1970-01-01
  • 2015-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
相关资源
最近更新 更多