即時通訊嘗試使用媒體對象在phonegap中錄製音頻文件,然後播放它。我沒有記錄問題,但是當我嘗試播放它時,我的應用程序關閉了,無論是在我的模擬器還是我的設備上。在logcat上說:「org.apache.cordova.readyPlayer(AudioPlayer.java)的空指針異常」。非常感謝任何願意幫助我的人,我花了一段時間才意識到完全迷失在這裏。 這裏是我從http://docs.phonegap.com/en/2.4.0/cordova_media_media.md.html#media.stopRecord複製的代碼,並且在.stopRecord()之後添加了.play()。如果需要,我可以添加清單和活動,我懷疑問題在那裏,但我可能是錯的。 的index.html:無法播放Android上的音頻錄音使用phonegap 2.4
<script type="text/javascript" charset="utf-8" src="cordova-2.4.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Record audio
//
function recordAudio() {
var src = "myrecording.amr";
var mediaRec = new Media(src, onSuccess, onError);
// Record audio
mediaRec.startRecord();
// Stop recording after 10 sec
var recTime = 0;
var recInterval = setInterval(function() {
recTime = recTime + 1;
setAudioPosition(recTime + " sec");
if (recTime >= 10) {
clearInterval(recInterval);
mediaRec.stopRecord();
document.getElementById('audio_position').innerHTML = "finished";
**mediaRec.play();**
}
}, 1000);
}
// Cordova is ready
//
function onDeviceReady() {
recordAudio();
}
// onSuccess Callback
//
function onSuccess() {
console.log("recordAudio():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;
}
</script>
<p id="media">Recording audio...</p>
<p id="audio_position"></p>
尤瓦
如果你停止錄製後刪除mediaRec對象,創建一個新的媒體對象以相同的網址並嘗試播放? – Michael 2013-04-04 11:03:16
實際上,五分鐘前我想通了,然後我看到了你的ansewr。它是正確的。無論如何,非常感謝你,下次我不會爲了這個問題而苦苦掙扎,你可能已經爲我節省了很多時間:) – 2013-04-04 14:17:09
@ user2033402我目前正忙於解決這個問題,請問您可以發佈您的解決方案。我使用phonegap 3.0,但語法是相同的。爲什麼我們需要刪除mediaRec對象,並創建一個新的對象 – 2013-10-03 15:49:04