2

私は現在、デバイスとタブレットの両方で動作するオーディオ録音アプリケーションを開発しています。

ユーザーは、記録を開始する前に次の設定を行うことができます。

フォーマット(AAC-PCM)

チャンネル(モノステレオ)

サンプルビットサイズ(8~16ビット)

サンプリングレート(8000、11025、22050、44100hz)

これらの設定値に基づいて、AudioRecord (解凍用) & MediaRecord (圧縮) を作成し、録音を開始します。

これまでのところは順調ですが、最近、次の問題に気付きました。

Channel を に設定するStereoと、アプリケーションは Xperia Arc で正常に動作しますが、Galaxy note では録音されたサウンドがトーキング トムのような音声で再生されます。Samsung i9000 では録音が失敗します。

また、ビットサイズを8ビットに設定した場合、同じ問題に直面しSample Bit Size ました。レコーダーは動作を拒否しました。

android docs によると、8 ビットはすべてのデバイスで動作することが保証されているわけではありません。

だから私は次のアプローチを念頭に置いています。

デバイスで互換性のない録音設定を検出する方法はありますか?無効にします。

したがって、ユーザーがアプリケーションを起動すると、互換性のある設定のみが表示されるため、ユーザー エクスペリエンスが低下することはありません。

上記のアプローチを実装するためのヒントを誰かに教えていただければ幸いです。

ありがとう

4

2 に答える 2

1

この目的のための API はありません。各メーカーは、音声認識の独自の方法を選択します (Bluetooth とスピーカーには異なるオプションを使用できます)。したがって、2 つのオプションを提案できます。1) もう 1 つの安定したオプション (PCM モノ、16KHz、22050 など) を選択します。2) アプリケーションの最初の起動時に、考えられるすべての構成を確認して保存します。

于 2012-08-02T10:14:16.133 に答える
1

Android のサウンド API は、それほど優れたものではありません。AudioRecord でステレオを使用し、奇数のバッファー サイズで読み取りを呼び出すと、電話が再起動するか、電話が再起動されるまでオーディオ サブシステムが台無しになる可能性があります。ステレオは、マイクが 1 つしかない電話でも機能し、さまざまな結果が得られます。当然のこととは言えませんが、より安全なオプションは、44100hz 16 ビット モノラルを使用し、ソフトウェアで独自のダウンサンプリングを行うことです。

于 2012-09-28T23:39:03.630 に答える