2

AudioManager.startBluetoothSco() 関数の制限を設定したい場合、どこで行うのですか? ここから: http://developer.android.com/reference/android/media/AudioManager.html#startBluetoothSco()

制限事項は次のとおりです。

• ストリーム タイプは STREAM_VOICE_CALL でなければなりません

•フォーマットはモノでなければなりません

• サンプリングは 16kHz または 8kHz でなければなりません。

STREAM_VOICE_CALL は次の場所でセットアップできます。

AM.setMode(AudioManager.MODE_IN_CALL);

また

AM.setStreamSolo(AudioManager.STREAM_VOICE_CALL, true);

モノとサンプリングは次のようにセットアップできます。

audioRecord = new AudioRecord(
android.media.MediaRecorder.AudioSource.MIC, 8000,
AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, buffersizebytes); 

誰か違う方法を考えたり知ったりできますか?

4

2 に答える 2

1

Android SDK ドキュメントに提供したリンクには、次のように記載されています。

「... SCO 接続が確立されている場合、SCO ヘッドセットにルーティングできるように、オーディオ出力ストリームに次の制限が適用されます。

  • ストリーム タイプは STREAM_VOICE_CALL でなければなりません
  • フォーマットはモノでなければなりません
  • サンプリングは 16kHz または 8kHz でなければなりません

入力ストリームには次の制限が適用されます。

  • フォーマットはモノでなければなりません
  • サンプリングは 8kHz でなければなりません」

「AudioRecord」の使用は入力ストリームであり、STREAM_VOICE_CALL を気にする必要はありません。

"AudioTrack" の場合、SCO モードで次の操作を行う必要があります。

AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, //
8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, //
minBufferSizeInBytes, //
AudioTrack.MODE_STREAM);

SCO モードでない場合は、次のようになります。

AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, //
8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, //
minBufferSizeInBytes, //
AudioTrack.MODE_STREAM);
于 2012-10-03T00:56:30.267 に答える
0

この問題を解決するには、次のように両方を使用する必要があります。1 つは入力用、もう 1 つは出力用です。

                    audioRecord = new AudioRecord(
                                    android.media.MediaRecorder.AudioSource.MIC ,                                                                                SAMPPERSEC,
            channelConfiguration, audioEncoding, buffersizebytes);

        Atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
            SAMPPERSEC,
            AudioFormat.CHANNEL_OUT_MONO,
            audioEncoding,
            buffersizebytes,
            AudioTrack.MODE_STREAM);
于 2013-04-14T19:30:54.633 に答える