3
File dir = new File("/mnt/sdcard");
Process process = Runtime.getRuntime().exec("ffmpeg -f image2 -i img%4d.png video.mp4", null, dir);

当我在 android 中尝试这一行时,我在 android 中得到环境和工作目录空错误。但是当我在java中尝试这条线时,它工作得很好。但是在android中,它有一些问题。

4

4 回答 4

3
i get environment and working directory null

它将返回 null ,因为没有类似/mmt/sdcarduse的路径/mnt/sdcard

在此处输入图像描述

最好使用Environment.getExternalStorageDirectory().

于 2012-10-20T05:43:15.523 回答
2

因为在您的EmulatorDevice中没有像 E:这样的驱动器。

您无法像这样在 android 中访问您 PC 的任何驱动器。

编辑 :

File dir = Environment.getExternalStoragePublicDirectory();
File f = new File(dir."Yourfilename.png");
于 2012-10-20T05:26:26.253 回答
1

Android 安全不允许从 sdcard 或 USB 内存启动可执行文件。

您可以将可执行文件部署在您的应用程序文件/目录或全局可写的/data/local/目录中。不要忘记chmod 777

而不是使用exec("cmd", env, new File("dir"))调用exec("dir/cmd")

于 2012-10-20T13:15:47.993 回答
0

Android可能没有E盘,其实我可以保证。Android 有一个 linux 操作系统,并且不使用相同的驱动器命名约定。此外,每当编写生成进程的代码时,我都会考虑使用ProcessBuilder 。它更容易解析命令行选项。

于 2012-10-20T05:29:12.677 回答