[
https://issues.apache.org/jira/browse/CB-11655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15419866#comment-15419866
]
ASF GitHub Bot commented on CB-11655:
-------------------------------------
GitHub user alsorokin opened a pull request:
https://github.com/apache/cordova-plugin-media/pull/107
CB-11655 (Android) Enabled asynchronous error handling
<!--
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?
Fixes a crash and enables asynchronous MediaPlayer error handling.
The crash was happening because the plugin wasn't catching the error from
Android's MediaPlayer and thus when the error (in this case,
[MEDIA_ERROR_TIMED_OUT](https://developer.android.com/reference/android/media/MediaPlayer.html#MEDIA_ERROR_TIMED_OUT))
occurred, the plugin wasn't aware of this and tried to send new commands to
the MediaPlayer which was causing the crash.
### What testing has been done on this change?
Manual and automatic mobilespec tests on Android 4.4 emulator.
### Checklist
- [x] [ICLA](http://www.apache.org/licenses/icla.txt) has been signed and
submitted to [email protected].
- [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/alsorokin/cordova-plugin-media CB-11655
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/cordova-plugin-media/pull/107.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 #107
----
commit 6557e2478702fed410f0c28c4814aeb4ae45f534
Author: Alexander Sorokin <[email protected]>
Date: 2016-08-12T15:37:23Z
CB-11655 (Android) Enabled asynchronous error handling
----
> Plugin Media :app crashed when a telephone call come in if app is playing mp3.
> ------------------------------------------------------------------------------
>
> Key: CB-11655
> URL: https://issues.apache.org/jira/browse/CB-11655
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin Media
> Affects Versions: 2.3.0
> Environment: android 4.4/6.0.1,cordova 6.2.0
> Reporter: lei
> Assignee: Alexander Sorokin
>
> app crashed when a telephone call come in if app is playing mp3.
> following lines are exception info in logcat :
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: FATAL EXCEPTION: main
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: Process: com.sin360.icolor,
> PID: 23393
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: java.lang.RuntimeException:
> Error receiving broadcast Intent { act=android.intent.action.PHONE_STATE
> flg=0x10 (has extras) } in org.apache.cordova.CoreAndroid$5@ea96372
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:934)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> android.os.Handler.handleCallback(Handler.java:815)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> android.os.Handler.dispatchMessage(Handler.java:104)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> android.os.Looper.loop(Looper.java:207)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> android.app.ActivityThread.main(ActivityThread.java:5701)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> java.lang.reflect.Method.invoke(Native Method)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: Caused by:
> java.lang.NullPointerException: rhs == null
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> java.lang.String.compareTo(Native Method)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> org.apache.cordova.media.AudioPlayer.readyPlayer(AudioPlayer.java:492)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> org.apache.cordova.media.AudioPlayer.startPlaying(AudioPlayer.java:217)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> org.apache.cordova.media.AudioHandler.onMessage(AudioHandler.java:199)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> org.apache.cordova.PluginManager.postMessage(PluginManager.java:312)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> org.apache.cordova.CoreAndroid$5.onReceive(CoreAndroid.java:298)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: at
> android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:924)
> 07-30 16:53:39.932 23393 23393 E AndroidRuntime: ... 7 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]