![](/img/trans.png)
[英]Ionic app in iOS unable to play local audio with cordova-plugin-media
[英]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.