ios - Cordova 插件和依赖项

标签 ios cordova audio mobile plugins

我想为 iOS 创建一个使用其他预制 Cordova 插件并对其进行修改的 Cordova 插件。

例如,我想创建一个插件来上传 mp3 类型的音频文件,现在我想使用“媒体”插件录制、停止录制、播放、停止播放音频文件,该插件提供这些基本功能,但使用不同的文件格式(默认媒体插件使用我想使用 mp3 的 Wav 格式)而不修改“媒体”插件本身。

有什么办法可以做到这一点?

谢谢您的帮助。

最佳答案

实现这一点的方法是继承(来自 native 代码而不是 js)。

创建您自己的自定义插件(与具有 plugin.xml 文件、WWW 文件夹、Src 等的普通 Cordova 插件的文件结构相同)。

在您的 plugin.xml 文件中,将 Media 插件声明为依赖项,当您安装自定义插件时,它将动态地带到您的项目中(请注意,根据您机器上的 Cordova 版本,“Media”插件 native 代码可能具有一些差异)。

<dependency id="org.apache.cordova.media"/>

当您创建自己的类名 CDVYourClass 并使其成为 CDVSound 的子类时,“媒体”插件类 (IOS) 称为“CDVSound”。

从这里您可以覆盖您想要更改的方法(例如,如果您想要录制 .m4a 文件而不是 Media 插件默认的 .WAV)。

有关构建 Cordova 插件插件的更多信息,请参阅 Cordova 文档。

https://cordova.apache.org/docs/en/4.0.0/guide/cli/

这是关于自定义插件的好读物。

http://docs.telerik.com/platform/appbuilder/cordova/using-plugins/using-custom-plugins/making-plugman-compatible/create-modify-plugin-xml

除了这个答案之外,还有一些“私有(private)”方法,您最初无法覆盖这些方法来克服这个问题,使用 Objective C 类别来扩展父类(在本例中为 CDVSound),然后在类别 .m 文件中声明它,然后您可以导入类别类到您的父类并覆盖私有(private)方法。

关于ios - Cordova 插件和依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34747231/

相关文章:

android - 有没有一种方法可以将音频文件发送到Flask服务器?

ios - 更新 block 内的 UI

iphone - 在编辑时禁用 UITextField 上的键盘

ios - Swift 3 - 动态与@objc

javascript - 类型错误 'undefined' 不是对象(评估 'navigator.connection.type' )

sqlite - phonegap sqlite插件错误

ios - self.button.layer.backgroundColor 和 self.button.backgroundColor 有什么区别?

Cordova 推送插件 iOS 8

shell - 比较bash中声音文件的长度

c# - UWP:从HID捕获卡读取输入字节