[ 
https://issues.apache.org/jira/browse/CB-11513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas K. updated CB-11513:
---------------------------
    Description: 
If iOS issues a memory warning while playing a sound, all sounds are 
terminated. However the ios/CDVSound.m plugin does not update the state of its 
JS-clients, so the last state the Client knows is Media.MEDIA_RUNNING, which is 
untrue after a memory warning. This results in incorrect clientside status.

Problem: A user's software component may send pause() instead of play() (toggle 
button) effectively rendering the sound unplayable without recovery. This 
happened in our case.

Fix: Do not discard currently playing sounds. The first memory warning arrives 
exactly when the App enters the yellow area and consumes 500MB however it may 
consume 750MB and more according to Xcode so terminating sounds on "memory 
warning" is incorrect behavior.

https://github.com/apache/cordova-plugin-media/blob/master/src/ios/CDVSound.m#L814

How to reproduce: Add 1 or 2 large animated GIFs with 200+ frames to the 
UIWebView, this will consume 500MB quickly while playing the GIFs, or simulate 
the memory warning using the iOS Simulator while playing a sound.

  was:
If iOS issues a memory warning while playing a sound, all sounds are 
terminated. However the ios/CDVSound.m plugin does not update the state of its 
JS-clients, so the last state the Client knows is Media.MEDIA_RUNNING, which is 
untrue after a memory warning. This results in incorrect clientside status.

Problem: A user's software component may send pause() instead of play() (toggle 
button) effectively rendering the sound unplayable without recovery. This 
happened in our case.

Fix: Do not discard currently playing sounds. The first memory warning arrives 
exactly when the App enters the yellow area and consumes 500MB
however it may consume 750MB and more according to Xcode so terminating sounds 
on "memory warning" is incorrect behavior.

https://github.com/apache/cordova-plugin-media/blob/master/src/ios/CDVSound.m#L814

How to reproduce: Add 1 or 2 large animated GIFs with 200+ frames to the 
UIWebView, this will consume 500MB quickly while playing the GIFs, or simulate 
the memory warning using the iOS Simulator while playing a sound.


> iOS memory warning stops sound, but does not send status to JS-client
> ---------------------------------------------------------------------
>
>                 Key: CB-11513
>                 URL: https://issues.apache.org/jira/browse/CB-11513
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin Media
>    Affects Versions: 3.6.3, 4.1.3, 6.1.0
>         Environment: iOS 9.3 iPhone 6
>            Reporter: Thomas K.
>
> If iOS issues a memory warning while playing a sound, all sounds are 
> terminated. However the ios/CDVSound.m plugin does not update the state of 
> its JS-clients, so the last state the Client knows is Media.MEDIA_RUNNING, 
> which is untrue after a memory warning. This results in incorrect clientside 
> status.
> Problem: A user's software component may send pause() instead of play() 
> (toggle button) effectively rendering the sound unplayable without recovery. 
> This happened in our case.
> Fix: Do not discard currently playing sounds. The first memory warning 
> arrives exactly when the App enters the yellow area and consumes 500MB 
> however it may consume 750MB and more according to Xcode so terminating 
> sounds on "memory warning" is incorrect behavior.
> https://github.com/apache/cordova-plugin-media/blob/master/src/ios/CDVSound.m#L814
> How to reproduce: Add 1 or 2 large animated GIFs with 200+ frames to the 
> UIWebView, this will consume 500MB quickly while playing the GIFs, or 
> simulate the memory warning using the iOS Simulator while playing a sound.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to