2013-05-17 77 views
0

入店我做,當用戶點擊該按鈕播放的聲音的PhoneGap的應用程序:JavaScript中,變量不是由功能

<button onclick="playAudio('test.mp3')">Play Some Audio</button> 

但我想,當用戶進行雙擊聲音停止,不知何故我的代碼不工作!我是一個JavaScript的初學者,並認爲我沒有把變量=媒體放在正確的位置。這裏是我的全碼:

<body> 
    <h1>Playing Audio</h1> 

    <button onclick="playAudio('test.mp3')">Play Some Audio</button> 
    <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(); 
     var playing = false; 
     var media = null; 


     function playAudio(src) { 
      if (!playing) { 
       if (device.platform == 'Android') { 
        src = '/android_asset/' + src; 
       } 

       var media = new Media(src); 
       media.play(); 
       playing = true; 
      } else { 
       media.stop(); 
       playing = false; 
      } 
     } 
    </script> 
</body> 

回答

2

現在我發現這個問題,你不能使用

media = new Media (src) 

,而不是我有tu使用

my_Media = new Media (src) 

有一個與媒體的詞相互關聯! 但是,亞歷山大說什麼是絕對正確的,並且讓我知道最終的結果! 謝謝

+2

這就是爲什麼你不應該使用全局變量 - 你可能會覆蓋一些東西。創建一個範圍(查找IIFE),在那裏定義你的變量並從那裏附加你的處理程序。或者,如果不是範圍,則至少需要一個名稱空間(全局範圍內的一個對象,將全局變量放入其中)。 –

2

更改以下行

var media = new Media(src); 

media = new Media(src); 
+2

@Ian,'var media = new Media(src)'在函數範圍內創建另一個變量,與全局範圍中聲明的變量分開爲var media = null。 –

+0

@Sheikh Heera,你會怎麼做?當我將其更改爲媒體= ..沒有任何作品甚至不播放音頻! –

+0

你不能播放或不能停止音頻?你在瀏覽器或移動設備上執行此操作嗎?你有訪問調試日誌嗎? –