我正在使用MediaRecorder允许用户在我的应用程序中录制音频,对于大多数用户(以及在我所有的测试设备上),它都可以正常工作。相关代码如下:

mRecorder = new MediaRecorder();

        mRecorder.setOnInfoListener(infoListener);

        String audioFilePath = mUri.getPath();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        mRecorder.setOutputFile(audioFilePath);
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        mRecorder.setAudioEncodingBitRate(256 * 1024);
        mRecorder.setAudioSamplingRate(44100);

        mRecorder.setMaxDuration(60000);

        try{
            mRecorder.prepare();
        }catch (IOException ex){
            Log.e(TAG, "Prepare() failed", ex);

            mTracker.send(new HitBuilders.ExceptionBuilder()
            .setDescription("Preparing MediaRecorder in : " + Thread.currentThread().getName()+ ": " + ex.toString())
            .setFatal(false)
            .build()
            );
        }
        mRecorder.start();


我收到一个用户的报告,说他们无法录制音频,他们看到的敬酒消息是我从MediaRecorder.onInfoListener中触发的。

因此,我添加了一些Google Analytics(分析)并从该侦听器中记录了一个事件,以查看是否可以跟踪该错误:

private MediaRecorder.OnInfoListener infoListener = new MediaRecorder.OnInfoListener() {
        @Override
        public void onInfo(MediaRecorder mr, int what, int extra) {
            mr.stop();
            mr.reset();
            mr.release();
            mr = null;
            onRecordingStopped();
            Toast.makeText(mContext, R.string.audio_recording_stopped, Toast.LENGTH_SHORT).show();
            mTracker.send(new HitBuilders.EventBuilder()
            .setCategory("Error")
            .setAction("AudioStopped")
            .setLabel("What: " + what + ", extra: " + extra)
            .build());
        }
    };


如您所见,我正在将“ what”和“ extra”参数传递给Analytics(分析),这样我就可以看到发生了哪种错误。

在今天早上的分析中(到目前为止只有一天的数据在运行),我看到一些“最大”持续时间是800,而在文档中我看到的是最大持续时间,而其他的则是“最大持续时间”。在Media.Recorder文档中找不到895的引用。

对895意味着什么建议?

最佳答案

我遇到了同样的问题。原来我的设备信息代码895表示正在进行录制。
这意味着您无需停止录制。

关于android - MediaRecorder OnInfoListener给出了895,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25785420/

10-10 23:34