Ric*_*amm 5 cordova cordova-plugins ngcordova
我正在使用cordova-media-plugin 1.0.1.在一个离子移动应用程序中.我正在使用该插件播放音频文件.
我可以使用它来玩它:
var media = $cordovaMedia.newMedia(fileToPlay,
// success callback
mediaSuccess,
// error callback
mediaFailure,
// status callback
mediaStatus
);
Run Code Online (Sandbox Code Playgroud)
然后我可以调用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);
}
Run Code Online (Sandbox Code Playgroud)
但它们永远不会被称为.但是,它是我的控制台,我看到从播放器本身开始记录,因为它开始和停止播放:
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'
Run Code Online (Sandbox Code Playgroud)
这些日志记录事件将发送到控制台,但它们不在我的代码中,因此它们必须来自媒体对象.
我需要获得状态更改和/或成功回调,因为我需要更新模型以启用播放,但是当剪辑完成播放时再次启用播放.
有什么想法吗?
深入研究后,我发现(尽管有文档)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');
});
}
Run Code Online (Sandbox Code Playgroud)
我尝试将 ios 添加到列表中,看看它是否只是该代码中的一个失误,然后它就崩溃了:
错误:插件“Media”中未定义方法“messageChannel:”
所以...我们这些为 iOS 或其他非 Android/Windows 平台构建的人在回调方面是 SOL(尽管玩仍然可以)。似乎没有办法向 Apache 提交有关此问题的错误报告,除非它是来自 apache.org 电子邮件地址的电子邮件,所以我不确定他们是否知道这一点。
归档时间: |
|
查看次数: |
1477 次 |
最近记录: |