我想开发一种带有PhoneGap(Cordova 2.2.0)的媒体播放器,并将Adobe的Phonegap Build用于其他平台。这意味着几乎所有东西都必须是相对的;)我的应用程序的开发是在 Android 2.3 上(最小目标)。
这是我的问题:
当文件的路径来自网络时http://...
(/android_asset/www/media/song.mp3
但是,当尝试相对(media/song.mp3
)执行此操作时,歌曲不会开始播放,给我一个错误代码:
媒体播放器:错误(1,-2147483648)
如果我再次按播放,我会收到更多错误:
MediaPlayer: start call in state 0 //表示没有文件
MediaPlayer: error (-38, 0)
MediaPlayer: Error (-38,0)
有没有办法让它相对工作,而不需要:
if(Android){
src=...
}
if(iOS){
src=...;
}...
上述选项非常耗时,并且如果其中一个平台的路径发生更改,则容易出错。
这是缩小的 Javascript 代码:
var song;
var app = {
initialize : function() {
this.bindEvents();
},
bindEvents : function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady : function() {
app.receivedEvent('deviceready');
song = new Media("/android_asset/www/media/song.mp3");
console.log("The song is: " + (song.mediaStatus!=0?"okay":"none"));
$('#play').click(function() {
song.play();
console.log("Song started");
});
$('#pause').click(function() {
song.pause();
console.log("Song paused");
});
$('#stop').click(function() {
song.stop();
console.log("Song stopped");
});
},
receivedEvent : function(id) {
console.log('Received Event: ' + id);
}
};
如果还有什么需要说的,请告诉我。