[
https://issues.apache.org/jira/browse/CB-12434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
jcesarmobile reassigned CB-12434:
---------------------------------
Assignee: jcesarmobile
> Stoping a Paused Recording throws file not found exception
> ----------------------------------------------------------
>
> Key: CB-12434
> URL: https://issues.apache.org/jira/browse/CB-12434
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin Media
> Affects Versions: 2.4.1
> Reporter: jcesarmobile
> Assignee: jcesarmobile
> Labels: android, easyfix
>
> Start recording
> pause recording
> stop recording
> boom!
> {code}
> /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)
> {code}
> 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
> {code}
> if (!this.tempFiles.contains(this.tempFile)) {
> this.tempFiles.add(this.tempFile);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]