2016-06-01 2 views
0

Приветствия. Я новичок в javascript. Я скопировал код из вопроса stackoverflow, чтобы сделать плагин media cordova работать.Ошибка сборки телефонной книги и медиа-плагина

В этом вопрос. Phonegap Build with phonegap 3 and media plugin

Я использую онлайн-радиопоток. когда я нажимаю кнопку воспроизведения, его воспроизведение и все другие функции работают.

Но я столкнулся с некоторыми различными проблемами.

1.При кнопку воспроизведения я дважды щелкните поток радио дважды играл в то же время ..

2.And, когда я нажимаю кнопку остановки ее выемка поток, но если я нажмите кнопку остановки еще раз Я получаю сообщение об ошибке.

Как это исправить ??

Мой 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>

Мои 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; 
 
     }

Благодарности.

ответ

0

Когда вы делаете if (my_media), вы проверяете, определена ли переменная. Вам также необходимо проверить статус воспроизведения мультимедиа. Например, в функции stopAudio() вы должны убедиться, что звук фактически воспроизводится, а в playAudio() убедитесь, что он в данный момент не воспроизводится. Вы можете найти, как использовать этот статус в plugin documentation.