0

モバイル デバイスの Cordova アプリでオーディオを録音し、それをデスクトップ コンピューターの Web アプリケーションで再生できるようにしたいと考えています。ただし、厄介なコーデックの問題が発生しています。

コルドバのドキュメントによると:

Android デバイスは、オーディオをアダプティブ マルチレート形式で録音します。指定したファイルは .amr 拡張子で終わる必要があります。

これは間違っているようです。ここの情報によると、.amr ファイルには次で始まるヘッダーが必要です。

#!AMR.4

ただし、Nexus 7 のオーディオ ファイルには次のようなヘッダーがあります。

....ftyp3gp4....

これは、.3gp 拡張子が必要であることを示しているようです。

さらに、どちらの形式についても、(Cordova 以外の) ネイティブ ブラウザー サポートはないと思います。JavaScript amr 再生ライブラリを見つけましたが、.3gp ファイル (つまり、android が生成するファイル) を変換できません。.3gp ファイルをデコードするために同様のアプローチを使用できると確信していますが、これは困難な作業のように思えます。私はそれを避けることを望んでいます。他の誰かがそれをやりたいと思ったら、私は永遠に感謝します.

Cordova Media API が生成するフォーマットを変更する方法がない場合は、デコーダーが必要になります。純粋な JavaScript デコード ソリューションが理想的ですが、フラッシュ コンバーターも同様に優れています。私が検討した他の可能性には、いくつかの問題があります。

1 つの可能性は、別のアプリを使用して変換を行うことです。たとえば、Android の場合は ffmpeg です。Cordova からインテントを起動するには、Phonegap Build が提供していないプラグインが必要であり、ユーザーは別のアプリをインストールして操作する必要があるため、それは避けたいと思います。

別の可能性は、クラウドでデコードを行うことです。可能であれば、独自の Web サービスを実行したくありません。encoding.com を試してみたところ、オーディオ ファイルの 1 つを mp4 に正常に変換できましたが、まだ Dropbox ファイル ウォッチをサポートしていません。また、たとえば HIPAA が原因で、音声ファイルを暗号化する前に暗号化する必要がある場合、クラウドのデコードは不可能ではないにしても、非常に複雑になります。

助けてください。ありがとうございました。

4

1 に答える 1

0

問題は、Android に含まれるエンコード コーデックがあまりないことです。この表を見ると、Android 4.1 より前に何が利用できるかがわかります。Phonegap は、3gpp コンテナーのエンコード タイプとして AMR-NB を使用します。

クラウドでデコードすることをお勧めします。

于 2013-02-11T15:31:09.907 に答える