4

既存の 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]);
};

Media プラグインを JS モジュールとして実装する cordova.js ファイルを操作したくないためです。私の現在の考えは、phonegap Media プラグインに必要なすべてのコードを複製することです。(Media オブジェクトを定義する cordova.js の部分を複製し、上記の行を追加し、OS 側で必要な Java クラスも複製し、それらを既存の cordova プラグインと同じように見えるプラグインにラップします。ただし、レコード設定あり)。

ご覧のとおり、私は必死です。モジュールを拡張して必要なカスタム関数を追加し、既存のコードを再利用する代わりに、すべてを複製しようとしています。

また、自分のニーズに合わせて cordova.js と Cordova Java クラスを編集することもできましたが、「修正」を上書きしてしまうため、最新の cordova バージョンに更新することはできませんでした。

コルドバプラグインを拡張することはできますか? または、自分のニーズに合わない場合は、書き直さなければなりませんか?

iOS 用のこのプラグインを見つけましたが、このプラグインが実装されてから多くの変更が加えられたようです。

    Media.prototype.startRecordWithSettings = function() { ... }

ログには、「Uncaught ReferenceError: Media is not defined at ...」と記載されています。

JavaScript モジュール パターンは初めてで、phonegap JS モジュールを拡張する方法がわかりません。

私を助けてください。

4

0 に答える 0