cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas K. (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CB-11513) iOS memory warning stops sound, but does not send status to JS-client
Date Thu, 30 Jun 2016 19:56:10 GMT

     [ 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: Send a correct message to update the status at the JS-client to Media.MEDIA_STOPPED or
do not discard currently playing sounds.

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: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org


Mime
View raw message