我的javascript技能开始提高(我认为),但我对cordova-plugin-media有一个非常奇怪的问题
我已将插件添加到cordova,但是当我定义媒体对象时,成功或失败事件都没有触发。
我在代码中添加了很多控制台提示:
$scope.testSound = function() {
console.log("!!!!!!! DEFINING THE PATH");
var src = "snd/emergency.wav";
console.log("!!!!!!! DEFINING THE MEDIA OBJECT");
var emergencySound = new Media(src, mediaSuccess, mediaError);
console.log("WE SHOULD BE FIRING THE SUCCESS OR FAIL METHODS NOW");
function mediaSuccess(){
console.log("!!!!!!!!!!!!!!!!!!!Success");
alert("Media loaded");
}
function mediaError(err){
console.log("!!!!!!!!!!!!!!!!!!!!!!FAIL");
alert("Media failed to load");
}
console.log("!!!!!!!!!!!!!!!!!!!!!!METHOD COMPLETE");
}
})
,输出如下:
I/chromium( 2978): [INFO:CONSOLE(173)] "!!!!!!! DEFINING THE PATH", source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)
I/chromium( 2978): [INFO:CONSOLE(173)] "!!!!!!! DEFINING THE MEDIA OBJECT", source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)
I/chromium( 2978): [INFO:CONSOLE(173)] "WE SHOULD BE FIRING THE SUCCESS OR FAILMETHODS NOW", source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)
I/chromium( 2978): [INFO:CONSOLE(173)] "!!!!!!!!!!!!!!!!!!!!!!METHOD COMPLETE",source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)
我希望触发失败方法,因为我认为我的媒体文件路径没有正确的语法,但不仅失败不会触发,而且没有迹象表明代码存在问题(Android 4.4.2)。
答案 0 :(得分:1)
看起来像一个错误,我通过不检查定义媒体对象是否有任何错误来解决这个问题。
答案 1 :(得分:0)
您应该检查媒体状态:
var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);
Media.MEDIA_NONE = 0;
Media.MEDIA_STARTING = 1;
Media.MEDIA_RUNNING = 2;
Media.MEDIA_PAUSED = 3;
Media.MEDIA_STOPPED = 4;
试试这个媒体功能:
media.getCurrentPosition(mediaSuccess, [mediaError]);
让我知道。
尼科