使用vorbis AudioEncoder录制时抛出IllegalStateException

时间:2016-01-12 15:26:40

标签: android mediarecorder opus oggvorbis

我试图使用ogg vorbis格式录制音频捕捉, 但是在调用start()时我得到一个IllegalStateException 使用mp3格式时一切都很好 我的MediaRecorder代码snnipet:

如果可以选择将MediaRecorder与Opus编码器一起使用,那很好, 我想举个例子。 我正在寻找免费的唱片格式,所以我不能使用mp3。

 private void startRecording() {
    if (IsRecording()) {
        stopRecording();
    }
    mRecorder = new MediaRecorder();
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
   // mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.WEBM);
    mRecorder.setOutputFile(mFileName);
    //mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.VORBIS);
    StartRecording = false;
    try {
        mRecorder.prepare();
    } catch (IOException e) {
        Log.e(LOG_TAG, "prepare() failed");
    }

    mRecorder.start();
    StartRecording = true;

}

我的日志:

    FATAL EXCEPTION: main
 java.lang.IllegalStateException
     at android.media.MediaRecorder.native_start(Native Method)
     at android.media.MediaRecorder.start(MediaRecorder.java:784)
     at com.sparkup.device.AudioCapture.startRecording(AudioCapture.java:92)
     at com.sparkup.device.AudioCapture.onRecord(AudioCapture.java:43)
     at com.sparkup.device.SparkupActivity$10.run(SparkupActivity.java:803)
     at android.os.Handler.handleCallback(Handler.java:739)
     at android.os.Handler.dispatchMessage(Handler.java:95)
     at android.os.Looper.loop(Looper.java:135)
     at android.app.ActivityThread.main(ActivityThread.java:5349)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)

0 个答案:

没有答案