我可以使用它来玩它:
var media = $cordovaMedia.newMedia(filetoplay,// success callback mediaSuccess,// error callback mediaFailure,// status callback mediaStatus );
然后我可以调用media.play()来播放文件.
但是,回调似乎永远不会执行.我将它们定义为:
function mediaSuccess () { console.log("Successfully finished task."); } function mediaFailure (err) { console.log("An error occurred: " + err.code); } function mediaStatus (status) { console.log("A status change occurred: " + status.code); }
但它们永远不会被称为.但是,它是我的控制台,我看到从播放器本身开始记录,因为它开始和停止播放:
Will attempt to use file resource '//var/mobile/Containers/Data/Application/931BFA01-cda4-43CD-BC16-7FB6A64305DC/library/NoCloud/DateTime-1446772191539audio_007.wav'Playing audio sample '//var/mobile/Containers/Data/Application/931BFA01-cda4-43CD-BC16-7FB6A64305DC/library/NoCloud/DateTime-1446772191539audio_007.wav'Stopped playing audio sample '//var/mobile/Containers/Data/Application/931BFA01-cda4-43CD-BC16-7FB6A64305DC/library/NoCloud/DateTime-1446772191539audio_007.wav'
这些日志记录事件将发送到控制台,但它们不在我的代码中,因此它们必须来自媒体对象.
我需要获得状态更改和/或成功回调,因为我需要更新模型以启用播放,但是当剪辑完成播放时再次启用播放.
有什么想法吗?
解决方法 在深入研究之后,我发现(尽管有文档)在cordova-media-plugin版本1.0.1中没有为iOS实现回调.它们仅适用于AndroID,fireos和windows.在模块的www目录中的Media.Js文件的底部,它创建了一个cordova频道,允许它订阅来自本地播放器的消息.不幸的是,该代码仅针对androID,fireos和windows phone执行:
if (cordova.platformID === 'androID' || cordova.platformID === 'amazon-fireos' || cordova.platformID === 'windowsphone') { var channel = require('cordova/channel'); channel.createSticky('onMediaPluginReady'); channel.waitForInitialization('onMediaPluginReady'); channel.onCordovaReady.subscribe(function() { exec(onMessageFromNative,undefined,'Media','messageChannel',[]); channel.initializationComplete('onMediaPluginReady'); });}
我尝试将ios添加到列表中以查看它是否只是该代码中的错过并且它爆炸了:
错误:方法’messageChannel:’未在插件’媒体’中定义
所以…我们这些为iOS或其他非AndroID / windows平台构建的人在回调时都是Sol(尽管播放仍然有效).似乎没有办法向Apache提交有关此问题的错误报告,除非它是来自apache.org电子邮件地址的电子邮件,所以我不确定他们是否知道它.
总结以上是内存溢出为你收集整理的cordova-plugin-media回调方法全部内容,希望文章能够帮你解决cordova-plugin-media回调方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)