我打算在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選項,但它似乎只用於命令行。先謝謝您的幫助。