2013-10-14 31 views
0

我與PhoneGap 3.0.0工作,我的confic.xml文件確實有所需的插件。我可以開始說,當我運行我的代碼時,我的聲音開始啓動,而其他所有功能都可以運行。只有一件事不想工作。PhoneGap媒體插件停止音頻不工作

我正在使用Jquery Mobile。

我無法停止音頻。

我正在調用一個名爲「stopAudio()」的函數,它讀取全局變量「my_audio」並激活「stop()」函數。

這是我的代碼。

的index.html

<a href="#stopaudio" data-role="button">Stop Audio</a> 

AudioHandler.js

document.addEventListener("deviceready", onDeviceReady, false); 

var my_media = null; 

function playAudio(url) { 
    try { 

     var my_media = new Media(url, 
      // success callback 
      function() { 
       my_media.release(); 
      }, 
      // error callback 
      function (err) { 
       my_media.release(); 
      }); 

     // Play audio 
     my_media.play(); 
    } catch (e) { 
     alert(e.message); 
    } 
} 


function stopAudio() { 
    my_media.stop(); 
} 

controller.js

$("#stopaudio").click(function() { 
    stopAudio(); 
}); 

實例:

playAudio("/android_assets/www/mysound.mp3"); 

所以我有這3個文件。我發佈的是少量的內容,但這些文件中的其他內容與音頻無關。我也嘗試和評論一切等等。

因此,基本上「controller.js」是檢測到點擊的文件,並從那裏調用來自AudioHandler.js的函數「stopAudio()」。

我的音頻確實在電話啓動時啓動。

我無法停止音頻。

進出口運行的想法,任何幫助將受到歡迎:-)

謝謝:)

回答

2

您已經聲明my_media作爲一個局部變量的位置:

try { 
     var my_media = new Media(url, 

你想讓它爲全球,所以刪除var

function playAudio(url) { 
    try { 

     my_media = new Media(url, 
      // success callback 
      function() { 
       my_media.release(); 
      }, 
      // error callback 
      function (err) { 
       my_media.release(); 
      }); 

     // Play audio 
     my_media.play(); 
    } catch (e) { 
     alert(e.message); 
    } 
} 
+0

Omg是的!讓我糾正這一點:-) – Daniel

+1

是的,即時通訊盲目,它的作品。 Ofc,我怎麼錯過這個。但多數民衆贊成在有些時候。再次感謝男士。我需要等3分鐘才能結束這個問題。 – Daniel

+0

問題已關閉並已接受。再次感謝 :-) – Daniel