我正在用PhoneGap構建一個音頻媒體記錄器/播放器。這一切都很好,但我打了一個我似乎無法熨燙的皺紋。PhoneGap無法getDuration()脫離媒體API,但其他方法工作
my_media.play();
確實在我的Eclipse或XCode控制檯中播放媒體無w/o錯誤,這就是爲什麼顯示-1的警報令人費解。我期望my_media.getDuration();
可以返回我正在嘗試播放的文件的持續時間。
我的try/catch塊沒有拋出錯誤,我對此很困惑。 Here's the PhoneGap documentation on Media.getDuration()。
function playAudio() {
$('#btnStopRecording').removeClass('ui-disabled');
$('#btnPlayMessage, #btnStartStopRecording, #btnDeleteMessage, #btnAcceptUpload').addClass('ui-disabled');
my_media = new Media(fullRecordPath,
// success callback
function() {
$('#btnPlayMessage, #btnStartStopRecording, #btnDeleteMessage, #btnAcceptUpload').removeClass('ui-disabled');
$('#btnStopRecording').addClass('ui-disabled');
},
// error callback
function (err) {
console.log("attempting to play fullRecordPath = "+fullRecordPath);
console.log("playAudio():Audio Error: " + err.code);
}
);
var thisDuration;
try{
thisDuration = my_media.getDuration();
} catch (err) {
console.log("attempting to get duration error code "+err.code);
console.log("attempting to get duration error message "+err.message);
}
alert("we're about play a file of this duration "+thisDuration);
my_media.play();
// stop playback when the stop button is tapped
$('#btnStopRecording').off('tap').on('tap',function()
{
my_media.stop();
$('#btnPlayMessage, #btnStartStopRecording, #btnDeleteMessage, #btnAcceptUpload').removeClass('ui-disabled');
$('#btnStopRecording').addClass('ui-disabled');
});
// if the user leaves the page, stop playback
$('#pageRecordMessage').live('pagehide', function()
{
my_media.stop();
$('#btnPlayMessage, #btnStartStopRecording, #btnDeleteMessage, #btnAcceptUpload').removeClass('ui-disabled');
$('#btnStopRecording').addClass('ui-disabled');
});
}
我有它像你進入setInterval但仍然無法正常工作。它始終返回-1。可能是什麼原因?因爲它執行得很好。文件類型可能是問題?我正在使用mp3 –