Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.4.1
-
None
Description
Start recording
pause recording
stop recording
boom!
/storage/emulated/0/tmprecording-1486509338267.3gp: open failed: ENOENT (No such file or directory) java.io.FileNotFoundException: /storage/emulated/0/tmprecording-1486509338267.3gp: open failed: ENOENT (No such file or directory) at libcore.io.IoBridge.open(IoBridge.java:452) at java.io.FileInputStream.<init>(FileInputStream.java:76) at org.apache.cordova.media.AudioPlayer.moveFile(AudioPlayer.java:213) at org.apache.cordova.media.AudioPlayer.stopRecording(AudioPlayer.java:271) at org.apache.cordova.media.AudioHandler.stopRecordingAudio(AudioHandler.java:298) at org.apache.cordova.media.AudioHandler.execute(AudioHandler.java:121) at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:98) at org.apache.cordova.PluginManager.exec(PluginManager.java:132) at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:57) at org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41) at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method) at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:41) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.os.HandlerThread.run(HandlerThread.java:61) Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) at libcore.io.Posix.open(Native Method) at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186) at libcore.io.IoBridge.open(IoBridge.java:438) at java.io.FileInputStream.<init>(FileInputStream.java:76) at org.apache.cordova.media.AudioPlayer.moveFile(AudioPlayer.java:213) at org.apache.cordova.media.AudioPlayer.stopRecording(AudioPlayer.java:271) at org.apache.cordova.media.AudioHandler.stopRecordingAudio(AudioHandler.java:298) at org.apache.cordova.media.AudioHandler.execute(AudioHandler.java:121) at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:98) at org.apache.cordova.PluginManager.exec(PluginManager.java:132) at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:57) at org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41) at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method) at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:41) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.os.HandlerThread.run(HandlerThread.java:61)
the problem is the file is added to the tempFiles list twice, once on pause and once on stop, so it's moved twice, and the second time it doesn't exist anymore because it was moved.
It's an easy fix, just check if the tempFiles already contains the file on stopRecording
if (!this.tempFiles.contains(this.tempFile)) { this.tempFiles.add(this.tempFile); }
Attachments
Issue Links
- links to