我花了很多时间尝试扩展现有的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的新手,我不明白我是如何扩展一个phonegap JS模块的 .

请帮我 .