【发布时间】:2015-04-08 14:52:04
【问题描述】:
我将在 Android 项目中使用 FFmpeg 作为 JNI 库,我知道 Kitkat 的局限性。由于随着 Lollipop 的新版本,第三方应用程序有可能访问外部 microsd,我想利用它。我已经阅读了this useful question,所以我使用 ACTION_OPEN_DOCUMENT_TREE 意图,用户选择一个文件夹,然后我使用类似的代码来获取文件描述符。然后我将此 UNIX 文件描述符发送到 jni 函数。如果我使用这样的东西,我已经创建了一个演示:
int descriptor = a_file_descriptor;
FILE* fp = fdopen(descriptor , "w");
fprintf(fp, "Hello from Lollipop!");
fclose(fp);
一切都很好。问题是我想从文件描述符中提取完整的文件名。可以使用一些可用于 Linux 的技巧,但如果我执行 fopen 并尝试 fprintf 文件中的某些内容,则不会发生任何事情。所以我想我应该使用文件描述符,但是如何将它与 FFmpeg 一起使用呢?我读到了pipe 选项,但它似乎只适用于命令行。提前感谢您的帮助。
【问题讨论】:
标签: android linux ffmpeg java-native-interface