5

OS XでAndroid Emulatorを実行しており、AudioRecordを使用してオーディオのサンプルを取得し、FFT jarを使用して周波数を決定しようとしています(チューニングアプリ用)。

電話を使用してデバッグするのが難しいので(http://stackoverflow.com/questions/4425127/android-galaxy-s-phone-adb-debug-bridge-trouble-on-mac-osx)、使用したいエミュレーター。

エミュレーターからオーディオのサンプルを取得すると、ランダムな値が含まれているように見えます。何かを録音していると思いますが、コンピューターのマイクから来ているかどうかはわかりません。これらの値が何から来ているのか、エミュレーターを使用して記録できるかどうかを誰でも確認できますか?

次のように AudioRecord オブジェクトを初期化しています。

 int frequency = 8000;
 int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;
 int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;

 try {
        // Create a new AudioRecord object to record the audio.
        int bufferSize = AudioRecord.getMinBufferSize(frequency,channelConfiguration,audioEncoding);

        AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 
                                                  frequency, channelConfiguration, 
                                                  audioEncoding, bufferSize);
 ...
4

2 に答える 2

3

android dev サイトから: 「このプラットフォームでは、モバイル デバイスのハードウェアでサポートされているオーディオとビデオを記録することもできます。オーディオまたはビデオを記録するには、MediaRecorder クラスを使用します。エミュレーターには、オーディオまたはビデオをキャプチャするためのハードウェアがないことに注意してください。ですが、実際のモバイル デバイスはこれらの機能を提供する可能性が高く、MediaRecorder クラスを通じてアクセスできます。」

編集:実際には、エミュレーターを介してオーディオを録音できる場合があります。次の質問を参照してください: Android エミュレーターは PC ハードウェアを使用してオーディオを録音および再生できますか?

于 2010-12-13T02:30:44.947 に答える
2

OS X では、サンプル レート 44100 でオーディオを録音すると Android エミュレータでは機能しないことがわかりましたが、サンプル レート 16000では機能します。

于 2014-01-15T23:56:32.460 に答える