android - MediaRecorder OnInfoListener 给出 895

标签 android mediarecorder

我使用 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();

我收到用户的报告,称他们无法录制音频,他们看到的 toast 消息是我从 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());
        }
    };

如您所见,我正在将“内容”和“额外”参数传递给我的 Analytics,以便我可以了解发生了哪些类型的错误。

在今天早上的分析中(到目前为止只有一天的数据),我看到一些“什么”为 800,我在文档中可以看到达到了最大持续时间,但其他的有一个我在 Media.Recorder 文档中找不到 895 的“内容”。

对于 895 的含义有什么建议吗?

最佳答案

我也遇到了同样的问题。结果我的设备信息代码 895 意味着录音正在进行中。 这意味着您不需要停止录制。

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

相关文章:

android - 如何在屏幕底部添加取消问题

android - 使用样式而不是 android :textAppearance

java - Volley 请求重试策略不考虑超时

ListView为空时Android显示文本

html - Chrome MediaRecorder API 无法录制来自 FreeSwitch 的远程视频,但可以录制本地媒体

android - MediaRecorder 录制的视频被加扰

java - 将 java 转换为 actionscript 以使用 flash builder 有多容易?

Android AudioRecord - 以小文件大小录制音频

android - 录制视频时禁用方向更改

javascript - MediaStream 同时捕获 Canvas 和音频