2012-04-24 62 views
3

我正在構建一個基本的音板類應用程序,它有幾個播放聲音的按鈕。我正在使用PhoneGap/Cordova,並且正在使用PhoneGap Build服務將代碼編譯爲APK。起初,我使用簡單的HTML5 <audio>標籤,這些標籤在桌面瀏覽器以及Android瀏覽器中都能正常工作,但是當打包到PhoneGap應用中時,沒有任何聲音在播放。如何在單擊使用PhoneGap/Cordova構建的Android應用程序中的按鈕時播放音頻?

我環顧四周,看到一些提到不得不在PhoneGap中使用Media API而不是標準的HTML5音頻,所以我切換到下面的代碼更改。

我已經到位以下功能:

function doPlay(soundId) { 
    var my_media = new Media("/android_asset/www/"+soundId+".mp3", 
    function() { 
     navigator.notification.alert('Success!', alertDismissed); 
    }, 
    function(err) { 
    navigator.notification.alert('Error!', alertDismissed); 
    }); 
    my_media.play(); 
} 

每個按鈕都有類似這樣的onclick處理器...

onclick="doPlay('sound1');" 

的文件在同一目錄index.html,叫sound1.mp3,sound2.mp3等。功能alertDismissed()也已定義,但它是空的。

但是,它仍然不起作用。點擊時沒有聲音。沒有'Success''Error'消息。是的,我得到notificationmedia權限請求。

我很難過。有任何想法嗎?

更新:作爲建議由@西蒙·麥克唐納,我把一個完整路徑本地文件(「/ android_asset /網絡/」),但仍然沒有得到應用工作。沒有聲音,沒有錯誤/成功警報。 :-(

回答

3

給你文件的路徑不正確你想做的事:。

var my_media = new Media("/android_asset/www/" + soundId+".mp3", 
function() { 
    navigator.notification.alert('Success!', alertDismissed); 
}, 
function(err) { 
navigator.notification.alert('Error!', alertDismissed); 
}); 
my_media.play(); 

看看我的小教程

http://simonmacdonald.blogspot.ca/2011/05/using-media-class-in-phonegap.html

+0

我有一種感覺就是這樣,所以我興奮地放在這條路上,但我仍然沒有聽到聲音。我也沒有得到成功/失敗的警報。還有一些事情我做得不對。在這裏我沒有使用Eclipse有什麼相關性?這只是純文本編輯器,並壓縮並上傳到Build。 – aalaap 2012-04-29 11:47:33

+0

嗯,我知道這段代碼適合我。你確定你的聲音文件正在build中打包嗎?另外,當你測試你的應用程序時,你在「adb logcat」中看到了什麼?那裏通常有錯誤指出事情的根本原因。 – 2012-04-29 15:32:25

+0

我放棄了Android開發並回到了網絡。 – aalaap 2016-12-26 07:25:25

0

我有一種感覺你的問題是與你所寫的代碼無關,但也許你已經忘記了將Cordova JavaScript文件包含在你的頭部。

<script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script> 

祝你好運。

相關問題