我打算在Android项目中使用FFmpeg作为JNI库,我知道Kitkat的局限性。由于Lollipop的新版本有第三方应用程序访问外部microsd的可能性,我想利用它。我读过this useful question,所以我使用ACTION_OPEN_DOCUMENT_TREE意图,用户选择一个文件夹,而不是使用类似的代码来获取文件描述符。然后,我将这个UNIX文件描述符发送给一个jni函数。我创建了一个演示,如果我用这样的:Android中的FFmpeg和文件描述符棒棒糖
int descriptor = a_file_descriptor;
FILE* fp = fdopen(descriptor , "w");
fprintf(fp, "Hello from Lollipop!");
fclose(fp);
一切都很好。问题是我想从文件描述符中提取完整的文件名。使用Linux的一些技巧是可能的,但如果我做了一个fopen并尝试在文件中打印某些东西,则什么都不会发生。所以我想我应该使用文件描述符,但如何使用它与FFmpeg?我读了关于pipe选项,但它似乎只用于命令行。先谢谢您的帮助。