gpt4 book ai didi

android - 从 Android 上的 native 进程获取数据

转载 作者:太空狗 更新时间:2023-10-29 14:18:06 26 4
gpt4 key购买 nike

我使用我的应用程序转换视频,并使用 FFmpeg 库获取它。我使用的是 FFmpeg 的静态编译版本,我这样运行我的命令:

        //Conversion video
try {
Process p = Runtime.getRuntime().exec("data/data/package/cache/ffmpeg -i " path " -g " String.valueOf(keyFrames) " -s 720x480 -vcodec libx264 -an -y /sdcard/lowResolution.mp4");
p.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d(TAG, "Video convertido");

它运行良好,但它花费了我太多时间,所以我想放一个进度条,所以我应该需要读取进程的输出事件(我在终端中执行命令时可以看到相同的输出)为了知道需要多长时间或类似的东西。

抱歉我的英语不好,感谢您的帮助!!

最佳答案

你把整个东西放在一个线程中(或者可能是 AsyncTask,取决于你的偏好):

new Thread() {
public void run() {
//Conversion video
try {
Process p = Runtime.getRuntime().exec("data/data/package/cache/ffmpeg -i " path " -g " String.valueOf(keyFrames) " -s 720x480 -vcodec libx264 -an -y /sdcard/lowResolution.mp4");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = in.readLine()) != null) {
runOnUiThread(new Runnable() {
public void run() {
//update ur progress dialog accordingly
}
});
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d(TAG, "Video convertido");
}
}.start();

关于android - 从 Android 上的 native 进程获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19511703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com