Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-1593

WP7 : Media callback called multiple times

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 2.1.0
    • 2.4.0
    • cordova-wp7 (DEFUNCT)
    • None
    • Nokia Lumia 800 with WP 7.5 (7.10.8773.98).

    Description

      When using this code

      function play()

      { cordovaMedia = new Media("app/www/test.mp3", onSuccess, onError, onStatus); cordovaMedia.play(); }

      I encounter the following problems:

      • 1st call to play() does not work (ie: I don't hear the sound). nor are the callback called.
      • following play work, but callback are called multiple times.
      • onError is called even when play sound is successful (ie: when I can hear the sound).
      • if onStatus callback is not provided, an error show up in the log.

      Expected behavior:

      • onError & onSuccess should be exclusive. One OR the other should be called. Not both.
      • onError & onSuccess should be called only once per call to .play()

      VS Output:

      Log:"Received Event: deviceready"
      Log:"----------------------------------"
      Log:"# media play 0"
      'UI Task' (Managed): Loaded 'Microsoft.Xna.Framework.dll'
      'UI Task' (Managed): Loaded 'System.SR.dll'
      Log:"----------------------------------"
      Log:"# media play 1"
      Log:"####### media On Error. error: Value does not fall within the expected range. code: undefined message: undefined"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"----------------------------------"
      INFO: startPlayingAudio FOUND mediaPlayer for b43e2cd0-bafb-f6d3-add6-79428f19e324
      Log:"# media play 2"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"----------------------------------"
      Log:"# media play 3"
      Log:"####### media On Error. error: Value does not fall within the expected range. code: undefined message: undefined"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 1"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media OnStatus: 2"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media OnStatus: 4"
      Log:"# media OnStatus: 4"
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media On success. "
      Log:"# media OnStatus: 4"

      index.html

      [...]
      <script type="text/javascript">
      app.initialize();

      function onError (error){
      var s = "####### media On Error. ";

      if ((typeof error === "undefined") || (error==null))

      { s = s + " no error info." }

      else

      { s = s + "error: " + error + ' code: ' + error.code + ' message: ' + error.message; }

      console.log(s);
      }

      function onSuccess ()

      { var s = "# media On success. "; console.log(s); }

      function onStatus (status)

      { var s = "# media OnStatus: " + status; console.log(s); }

      var playcounter = 0;
      function play()

      { console.log("----------------------------------"); var s = "# media play " + playcounter; console.log(s); cordovaMedia = new Media("app/www/test.mp3", onSuccess, onError, onStatus); cordovaMedia.play(); playcounter++; }

      </script>

      <p onclick="play();">Click to Play MP3</p>

      </body>
      </html>

      My Config:

      • cordova : 2.1.0-0-g26d211b
      • template "full"
      • Nokia Lumia 800
      • Version OS : 7.10.8773.98 (commercial : 7.5)
      • Microsoft Visual Studio 2010
        Version WPDTRTMRel - 40219.209
        Microsoft .NET Framework
        Version 4.0.30319 SP1Rel
        Installed Version: PD Express

      Attachments

        Activity

          People

            bennmapes Benn
            christophe.guilmart Christophe A. Guilmart
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: