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
Post a Comment