2016-06-01 7 views
0

Grüße. Ich bin ein Anfänger in Javascript. Ich habe Code aus einer stackoverflow-Frage kopiert, damit das cordova media plugin funktioniert.Phonegap Build und Media Plugin Fehler

Das ist die Frage. Phonegap Build with phonegap 3 and media plugin

Ich benutze eine Online-Radio-Streaming-URL. Wenn ich die Wiedergabetaste drücke, funktioniert sein Abspielen und alle anderen Funktionen.

Aber ich stieß auf einige andere Probleme.

1. Wenn i Play-Taste zweimal klicken, wird der Radio-Stream wird zweimal in der gleichen Zeit zu spielen ..

2.und wenn ich Stopp-Taste seines stoping des Strom drücken, aber wenn ich einmal Stopp-Taste erneut drücken Ich bekomme eine Fehlermeldung.

Wie behebt man das ??

Meine index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 

 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
     <head> 
 
     <title>Waves of Power</title> 
 

 
     <link rel="stylesheet" href="style.css" /> 
 
\t \t <script type="text/javascript" charset="utf-8" src="cordova.js"></script> 
 
     <script type="text/javascript" charset="utf-8" src="radio.js"></script> 
 
     
 
     
 
     
 
     
 
     </head> 
 
     
 
     
 
     
 
     
 
     
 
     
 
     <body> 
 
     \t \t \t <div> 
 
     \t \t <img class="how" width="800px" height="1280px" src="images/ui.png" /> 
 
     \t \t </div> 
 
     
 
     
 
     
 
     <div class="cat-wrap"> 
 
     <div align="center" class="category" id="blin1"> 
 
      <a onClick="pauseAudio();"><img src="images/pause.png" width="90" height="90" /></a> 
 
     </div> 
 
     <div align="center" class="category" id="blin2"> 
 
      <a onClick="playAudio('http://192.184.9.81:8374/;');"><img src="images/play.png" width="90" height="90" /> </a> 
 
     </div> 
 
     <div align="center" class="category" id="blin3"> 
 
      <a onClick="stopAudio();"><img src="images/stop.png" width="90" height="90" /> </a> 
 
     </div> 
 
     </div> 
 
     
 
     
 
     
 

 
     </body> 
 
    </html>

Mein radio.js

// JavaScript Document 
 

 

 
     // Wait for device API libraries to load 
 
     // 
 
     //document.addEventListener("deviceready", onDeviceReady, false); 
 

 
     // device APIs are available 
 
     // 
 
     //function onDeviceReady() { 
 
     // playAudio("http://192.184.9.81:8374/;"); 
 
     //} 
 

 
     // Audio player 
 
     // 
 
     var my_media = null; 
 
     var mediaTimer = null; 
 

 
     // Play audio 
 
     // 
 
     function playAudio(src) { 
 
      // Create Media object from src 
 
      my_media = new Media(src, onSuccess, onError); 
 

 
      // Play audio 
 
      my_media.play(); 
 

 
      // Update my_media position every second 
 
      if (mediaTimer == null) { 
 
       mediaTimer = setInterval(function() { 
 
        // get my_media position 
 
        my_media.getCurrentPosition(
 
         // success callback 
 
         function(position) { 
 
          if (position > -1) { 
 
           setAudioPosition((position) + " sec"); 
 
          } 
 
         }, 
 
         // error callback 
 
         function(e) { 
 
          console.log("Error getting pos=" + e); 
 
          setAudioPosition("Error: " + e); 
 
         } 
 
        ); 
 
       }, 1000); 
 
      } 
 
     } 
 

 
     // Pause audio 
 
     // 
 
     function pauseAudio() { 
 
      if (my_media) { 
 
       my_media.pause(); 
 
      } 
 
     } 
 

 
     // Stop audio 
 
     // 
 
     function stopAudio() { 
 
      if (my_media) { 
 
       my_media.stop(); 
 
      } 
 
      clearInterval(mediaTimer); 
 
      mediaTimer = null; 
 
     } 
 

 
     // onSuccess Callback 
 
     // 
 
     function onSuccess() { 
 
      console.log("playAudio():Audio Success"); 
 
     } 
 

 
     // onError Callback 
 
     // 
 
     function onError(error) { 
 
      alert('code: ' + error.code + '\n' + 
 
        'message: ' + error.message + '\n'); 
 
     } 
 

 
     // Set audio position 
 
     // 
 
     function setAudioPosition(position) { 
 
      document.getElementById('audio_position').innerHTML = position; 
 
     }

Dank.

Antwort

0

Wenn Sie if (my_media) tun, überprüfen Sie, ob die Variable definiert ist. Sie müssen auch den Status der Medienwiedergabe überprüfen. In der Funktion stopAudio() sollten Sie beispielsweise prüfen, ob der Ton tatsächlich abgespielt wird, und in playAudio() überprüfen, ob er gerade wiedergegeben wird. Sie können den Status in plugin documentation verwenden.