javascript - Phonegap, stop audio -


i tried make simple phonegap aplication, several songs can played. far app can play song, when tap twice play button:

 <button onclick="playaudio('test.mp3')">play audio</button> 

it plays song again, echo can heard, instead of first stop audio , beging beginning of song. tried severeal things either stop button works. api stop audio can found here: http://docs.phonegap.com/en/2.0.0/cordova_media_media.md.html#media.stop stop button:

 <button onclick="stopaudio()">stop audio</button> 

and entire project:

     <body>      <h1>playing audio</h1>       <button onclick="playaudio('test.mp3')">play audio</button>       <button onclick="stopaudio()">stop audio</button>       </div>      <script type="text/javascript" src="cordova-2.4.0.js"></script>      <script type="text/javascript" src="js/index.js"></script>      <script type="text/javascript">         app.initialize();         function playaudio(src) {         if (device.platform == 'android') {             src = '/android_asset/' + src;         }          var media = new media(src, success, error_error);          media.play();      }      function success() {         // ignore     }      function error_error(e) {         alert('great error');         alert(e.message);     }      function stopaudio() {      if (media) {      var media = new media(src, success, error_error);          media.stop();          }     }     </script> </body> 

so maybe know how make stop button work? sorry bad englisch , greetings germany!

you can create flag when audio has been played audioplaying , check flag each time attempt play audio again. straight forward solution here.

also using 2 different instances of media object, when call stop on referencing entirely different instance. need increase scope of media object, see below:

edit: added audioplaying = false; stop function prevent getting stuck.

 <body>  <h1>playing audio</h1>   <button onclick="playaudio('test.mp3')">play audio</button>   <button onclick="stopaudio()">stop audio</button>   </div>  <script type="text/javascript" src="cordova-2.4.0.js"></script>  <script type="text/javascript" src="js/index.js"></script>  <script type="text/javascript">     var audioplaying = false;     var media;     app.initialize();     function playaudio(src) {         if (audioplaying === false) {             if (device.platform == 'android') {                 src = '/android_asset/' + src;             }              media = new media(src, success, error_error);              media.play();             audioplaying = true;         } else {             //audio playing         }     }  function success() {     // ignore }  function error_error(e) {     alert('great error');     alert(e.message); }  function stopaudio() {  if (media) {      media.stop();      audioplaying = false;      } } </script> 


Comments

Popular posts from this blog

Change php variable from jquery value using ajax (same page) -

Pull out data related to my apps from Android Play Store and iOS App Store -

How can I fetch data from a web server in an android application? -