我正在創建一個應用程序,檢測通過麥克風播放聲音的頻率。 分析在AsyncTask中完成。它在我嘗試一個音符時起作用。Android的audiorecord實例失敗
但是,當我試着分析6個音符時,從不同的吉他弦中一個接一個地說(它們之間有一秒左右的延遲),它只能捕獲一個音符。
這是一些logcat的輸出我得到的:
11-22 19:50:04.333: ERROR/AudioHardwareMSM72XX(1296): [doRouting]sndDevice=0,mCurSndDevice=-1
11-22 19:50:04.333: ERROR/AudioHardwareMSM72XX(1296): [SKW]do_route_audio_rpc(0, 1, 0)
11-22 19:50:04.333: ERROR/AudioHardwareMSM72XX(1296): msm72xx_enable_audpp: 0x0000
11-22 19:50:04.333: ERROR/AudioHardwareMSM72XX(1296): [doRouting]sndDevice=0,mCurSndDevice=0
11-22 19:50:30.523: ERROR/AudioHardwareMSM72XX(1296): Cannot open /dev/msm_pcm_in errno: 16
11-22 19:50:30.533: ERROR/AudioRecord(23241): Could not get audio input for record source 1
11-22 19:50:30.533: ERROR/AudioRecord-JNI(23241): Error creating AudioRecord instance: initialization check failed.
11-22 19:50:30.533: ERROR/AudioRecord-Java(23241): [ android.media.AudioRecord ] Error code -20 when initializing native AudioRecord object.
我刪除的任何重複你的所有。
這裏是我班的JIST:
static AudioRecord recorder;
static short[] audioData;
static int bufferSize;
static int samplerate = 8000;
static boolean recorded = false;
@Override
protected Integer doInBackground(params) {
bufferSize= AudioRecord.getMinBufferSize(samplerate,AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT)*2;
recorder = new AudioRecord (AudioSource.MIC,samplerate,AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,bufferSize);
audioData = new short [bufferSize]; //short array that pcm data is put into.
int recordingLoops = 0;
while (recordingLoops < 4 || recorded) { //loop until recording is running
if (recorder.getState()==android.media.AudioRecord.STATE_INITIALIZED)
if(recorder.getRecordingState()==android.media.AudioRecord.RECORDSTATE_STOPPED)
recorder.startRecording();
else {
recorder.read(audioData,0,bufferSize);
getFrequencyFromAudiodata(audioData);
recorded = true;
}
recordingLoops++;
}
if (recorder.getState()==android.media.AudioRecord.RECORDSTATE_RECORDING)
{
killRecorder();
}
return 1;
}
有你們有任何想法發生了什麼?我已經做了一些四處尋找,但我似乎只是碰到人們說Android是'充滿了錯誤'。
任何幫助將大規模讚賞。
謝謝,本
它似乎並沒有解決我的記錄沒有實例化的問題。任何想法可能會導致它? –