gpt4 book ai didi

cordova - PhoneGap 中的相关媒体源

转载 作者:行者123 更新时间:2023-12-03 03:22:36 28 4
gpt4 key购买 nike

我想用PhoneGap(Cordova 2.2.0)开发一种媒体播放器,并使用Adobe的Phonegap Build对于其他平台。这意味着几乎一切都必须是相对的;)我的应用程序的开发是在 Android 2.3(最小目标)上进行的。

这是我的问题:

当文件路径来自网络 (http://...) 时,或者已给出如下所示的明确路径 (/android_asset/www/媒体/歌曲.mp3)。但是,当尝试相对地执行此操作时(media/song.mp3),歌曲将无法开始播放,并给出错误代码:

MediaPlayer: error (1, -2147483648)

如果我再次按下播放键,我会收到更多错误:

MediaPlayer: start called in state 0 //meaning there is no file
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);
}
};

如果还有什么需要说的,请告诉我。

最佳答案

媒体 API 未在运行 PhoneGap 的所有操作系统上正确标准化。如果您想在 Android 上播放 asset 文件夹中的内容,则需要指定完整路径。您最好使用 device.name属性来检测您是否在 Android 上并在前面添加 /android_asset/www/ 路径。

关于cordova - PhoneGap 中的相关媒体源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13726030/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com