- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 PhoneGap/Cordova 1.6.0 播放声音文件。当我播放声音时出现这些错误:
ERROR: Method 'create:withDict:' not defined in Plugin 'Media'
FAILED pluginJSON = {"className":"Media","methodName":"create","arguments":["INVALID","94671882-85c3-9173-17a2-ed166310d77d","beep.wav"]}
即使我收到这些错误消息,声音也会在模拟器中播放,但不会在我的设备 (iPad 2 5.1) 上播放。我已经尝试使用 navigator.notification.beep 和 new Media() 但它们都抛出相同的错误。
有谁知道如何解决这个问题?
最佳答案
我很确定这是 Cordova 中的错误...
事情是这样的,我们从:
navigator.notification.beep
这将触发(cordova-1.6.1.js):
beep:function(count) {
(new Media('beep.wav')).play();
}
创建媒体对象将导致:
var Media = function(src, successCallback, errorCallback, statusCallback) {
// successCallback optional
if (successCallback && (typeof successCallback !== "function")) {
console.log("Media Error: successCallback is not a function");
return;
}
// errorCallback optional
if (errorCallback && (typeof errorCallback !== "function")) {
console.log("Media Error: errorCallback is not a function");
return;
}
// statusCallback optional
if (statusCallback && (typeof statusCallback !== "function")) {
console.log("Media Error: statusCallback is not a function");
return;
}
this.id = utils.createUUID();
mediaObjects[this.id] = this;
this.src = src;
this.successCallback = successCallback;
this.errorCallback = errorCallback;
this.statusCallback = statusCallback;
this._duration = -1;
this._position = -1;
exec(null, this.errorCallback, "Media", "create", [this.id, this.src]);
};
如果您查看 Cordova.plist,您会看到插件名称“Media”映射到“CDVSound”,并且在 CDVSound 中没有创建方法...
因为没有为“媒体”创建的方法,我们得到:
cleanApp[24713:707] ERROR: Method 'create:withDict:' not defined in Plugin 'Media'
cleanApp[24713:707] FAILED pluginJSON = {"className":"Media","methodName":"create","arguments":["INVALID","b6acfbad-1e26-de77-1557-0d7c2f87a00a","beep.wav"]}
那我们怎么能听到声音呢?
好问题.. 如果你看看:
new Media('beep.wav')).play();
你注意到我们调用了 play(),让我们看看它做了什么:
Media.prototype.play = function(options) {
exec(null, null, "Media", "startPlayingAudio", [this.id, this.src, options]);
};
在 CDVSound.h 中:
- (void) startPlayingAudio:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
关于ios - Phonegap 哔声/声音 iOS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175875/
此 python 代码的 PHP 版本是多少? import winsound winsound.Beep(537, 2000) 最佳答案 php主要用在web服务器上,在那里提示有什么用,而且你不能
我有一个包含这行代码的批处理文件: choice /c:123 /n 这基本上是一个美化的 pause,只有在按下 1、2 或 3 时才会继续。如果我按任何其他按钮,它会发出哔哔声。我在互联网上搜索了
如何用c++使硬件发出哔哔声? 最佳答案 打印特殊字符 ASCII BEL(代码7) cout << '\a'; Source 关于c++ - 用 C++ 发出声音(哔),我们在Stack Overf
我正在尝试根据浏览器窗口内的某些传感器读数以不同的速率播放“哔”声。 这个想法是当传感器读数高时“哔,哔,哔,...哔”更快,当传感器读数较低时,“哔,...哔”变慢,所有这些都是实时的。 传感器读数
环境: windows 7 英文 32 位 python 2.7.3 我可以在 IPython 中打印 beep,但在 Pydev 或 IDLE 中,它不起作用。 它只打印一个无法识别的字符,但不发出
我是一名优秀的程序员,十分优秀!