我花了很多时间尝试扩展现有的cordova插件,但到目前为止还没有管理,需要你的指导:
我想使用phonegap(cordova 2.1)在android和ios上录制音频。 默认设置有效,但我需要能够在我的应用程序中配置记录设置。用户必须能够选择BitEncodingRate,SamplingRate等。
这些设置目前在Cordova Media Plugin中进行了硬编码。 (确切地说 - 在Android的AudioPlayer类中)。 我想尽可能多地从已经存在的函数中重用并简单地添加函数。
Media.startRecordWithSettings(settings)
但我不清楚如何解决这个问题。
是否无法像这样扩展cordova Media插件:
Media.prototype.startRecordWithSettings = function() {
exec(null, this.errorCallback, "MyMedia", "startRecordWithSettings", [this.id, this.src]);
};
因为我不想操作cordova.js文件,该文件将Media插件实现为JS模块。 我目前的想法是复制phonegap Media插件所需的所有代码。 (我会复制定义Media对象的cordova.js部分,添加上面的行,并复制OS-Side所需的Java类,并将它们包装成一个看起来与现有cordova插件相同的插件,但有记录设置)。
你可以看到我绝望了。我不打算扩展模块并添加我需要的自定义函数并重用现有代码,而是要复制所有内容。
好的我也可以编辑cordova.js和Cordova Java类来满足我的需求,但是我永远无法更新到最新的cordova版本,因为我会覆盖我的“修复”。
是否可以扩展cordova插件?或者,如果他们不符合我的需要,我必须重写它们吗?
我找到了iOS的this plugin,但是自从这个插件实现以后似乎发生了很多变化,因为如果我在我的自定义javascript部分写了这样的东西:
Media.prototype.startRecordWithSettings = function() { ... }
日志说:“未捕获的ReferenceError:媒体未定义在......”
我是JavaScript module pattern的新手,我不明白如何扩展一个手机游戏JS模块。
请帮帮我。