[ https://issues.apache.org/jira/browse/CB-12434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15860350#comment-15860350 ]
ASF GitHub Bot commented on CB-12434: ------------------------------------- GitHub user jcesarmobile opened a pull request: https://github.com/apache/cordova-plugin-media/pull/127 CB-12434 (Android) fix Stoping a Paused Recording throws exception <!-- Please make sure the checklist boxes are all checked before submitting the PR. The checklist is intended as a quick reference, for complete details please see our Contributor Guidelines: http://cordova.apache.org/contribute/contribute_guidelines.html Thanks! --> ### Platforms affected Android ### What does this PR do? When you pause the recording and the stop it, the audio is added twice to the tempFiles list, so when it's moved it's moved twice, but the second time it no longer exits. This PR checks if the file is already on the list and doesn't add it if it's already there. ### What testing has been done on this change? Manual testing on Android 5 and 6 phones ### Checklist - [X] [Reported an issue](http://cordova.apache.org/contribute/issues.html) in the JIRA database - [X] Commit message follows the format: "CB-3232: (android) Fix bug with resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform affected. - [ ] Added automated test coverage as appropriate for this change. You can merge this pull request into a Git repository by running: $ git pull https://github.com/jcesarmobile/cordova-plugin-media CB-12434 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/cordova-plugin-media/pull/127.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #127 ---- commit ffeb17feb2d4a6493a3395d4db09f7e54144b6ae Author: Julio César <jcesarmob...@gmail.com> Date: 2017-02-09T22:49:10Z CB-12434 (Android) fix Stoping a Paused Recording throws exception ---- > 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 > 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: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org