簡體   English   中英

Cordova 6.5.0無法使用Cordova插件媒體FAILED重命名/storage/emulated/0/tmprecording-1489806941198.3gp錄制音頻

[英]Cordova 6.5.0 fails recording audio using cordova-plugin-media FAILED renaming /storage/emulated/0/tmprecording-1489806941198.3gp

我正在嘗試在Cordova 6.5.0上使用cordova-plugin-media錄制音頻。 當我運行該方法時,它將返回“ OK”並調用成功回調函數,但是當此函數嘗試獲取文件時,該文件不存在。

如果僅指定文件名,則文件位於/storage/emulated/0/filename.mp3,但是應用程序無法訪問此路徑。 因此,當我指定使用cordova.file.cacheDirectory作為參考進行保存時,它會在后台觸發錯誤,但是在javascript界面​​中,它仍會調用成功回調函數。

看一下logcat,我發現了以下內容:

E AudioPlayer:將/storage/emulated/0/tmprecording-1489806941198.3gp失敗重命名為/data/user/0/com.app/cache/recordedData-23-58cca65df12bf.mp3

我一直在Internet上搜索,發現與Cordova 3.5.0相關的類似錯誤是BUG,但我正在使用Cordova 6.5.0,該BUG是否仍會發生?

另外,我已經檢查了應用程序的特權,並且所有需要的特權已經授予。 例如:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我嘗試使用cordova.file.dataDirectory而不是cordova.file.cacheDirectory ,但是我仍然沒有成功。

這里是一段代碼:

 audioCtx = new Media(
            cordova.file.cacheDirectory + currentMediaFile,
            uploadMediaCapture
        );
        //console.log("Recording audio.");
        audioCtx.startRecord();

是否有人知道如何解決此問題?

Android無法將文件從/ storage移至/ data愚蠢的部分是,如果無法移動文件,則moveFile方法不會返回false,因此仍然調用Success回調。

因此,解決方案是將cordova.file.cacheDirectory替換為cordova.file.externalCacheDirectory或cordova.file.externalDataDirectory

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM