android - 录音机错误

标签 android audio recorder

我正在尝试制作录音机。当我单击“录音”按钮时,出现错误
致命异常:主要
流程:rishabh.agarwal.holmes.recorder,PID:22175
java.lang.IllegalStateException
在android.media.MediaRecorder.setOutputFormat(本地方法)
在rishabh.agarwal.holmes.recorder.MainActivity $ 2.onClick(MainActivity.java:47)

这是我的代码

public class MainActivity extends AppCompatActivity {

Button btnPlay,btnRec,btnStop;
MediaRecorder mr;
String fname;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    fname=Environment.getExternalStorageDirectory()+"/myrec1.3gp";
    btnPlay=(Button)findViewById(R.id.button1);
    btnRec=(Button)findViewById(R.id.button2);
    btnStop=(Button)findViewById(R.id.button3);
    btnPlay.setEnabled(false);
    btnStop.setEnabled(false);
    btnPlay.setOnClickListener(new OnClickListener() {


        @Override
        public void onClick(View v) {


        }
    });

    btnRec.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            mr = new MediaRecorder();
            mr.setOutputFile(fname);
            mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            mr.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
            mr.setAudioSource(MediaRecorder.AudioSource.MIC);
            try {
                mr.prepare();
            } catch (IllegalStateException e) {

                e.printStackTrace();
               // Toast.makeText(MainActivity.this, e.toString(), 5).show();
            } catch (IOException e) {
                // TODO Auto-generated catch block
               // Toast.makeText(MainActivity.this, e.toString(), 5).show();
                e.printStackTrace();
            }
            mr.start();
            btnRec.setEnabled(false);
            btnStop.setEnabled(true);
        }
    });

    btnStop.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            mr.release();
            mr.stop();

        }
    });
}

}

最佳答案

尝试删除此行

mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

关于android - 录音机错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35035965/

相关文章:

android - 广播接收器在完成任务后停止

android - 如果 "Embedded Google assistant SDK"已被释放?

Android 如何准确地将总天数更改为年、月和日?

java - 点击按钮导致应用程序崩溃

android - 从列表首选项中获取整数或索引值

c - 无需查找即可写入的音频文件格式

android - 如何播放安卓通知声音

java - 如何在未启用扬声器电话模式的情况下在通话中播放音频?

windows-7 - screen_capture_recorder 记录第二个监视器 ffmpeg Win 7

Android:在用户界面中显示的计时器