如何知道MediaRecorder是否处于运行状态?

问题描述 投票:10回答:2

我编写了一个代码来使用MediaRecorder记录通话的音频。

我如何知道MediaRecorder是否处于运行状态以停止记录。像

boolean running;
MediaRecorder mr;
//what should i assign to running?        
if(running){
   mr.stop()
}

上面的代码只是一个例子。如果您不明白我的问题,请告诉我。我将用实际的代码清楚地解释..

我只想知道“ MediaRecorder处于哪种状态?” ->录制/发行/准备/初始/等。

android audio-recording mediarecorder
2个回答
9
投票

您无法直接获取状态,请参见http://code.google.com/p/android/issues/detail?id=800处的打开增强功能请求>

当媒体播放器达到某个状态时,您需要在侦听器中手动设置一个变量,以便记住当前状态。

也是这个讨论:http://www.mail-archive.com/[email protected]/msg35320.html


0
投票
   String getRecorderState = "0";


         public void audioRecordStart(){
            if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
                try {
                    myAudioRecorder.prepare();
                    myAudioRecorder.start();
                    getRecorderState = "1";
                } catch (IllegalStateException ise) {
                    // make something ...
                } catch (IOException ioe) {
                    // make something
                }
                Toast.makeText(getApplicationContext(), "Recording started", Toast.LENGTH_LONG).show();
            }
            else {
                getAudioPermission();
            }
        }

        public void audioRecordStop() {
            if (getRecorderState.equals("0")){
               // make something ...
            }
            else {
                myAudioRecorder.stop();
                myAudioRecorder.release();
                myAudioRecorder = null;
                getRecorderState = "0";
                Toast.makeText(getApplicationContext(), "Audio Recorder successfully", Toast.LENGTH_LONG).show();
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.