モバイル デバイスの 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 が原因で、音声ファイルを暗号化する前に暗号化する必要がある場合、クラウドのデコードは不可能ではないにしても、非常に複雑になります。
助けてください。ありがとうございました。