【问题标题】:MediaRecorder not recording audioMediaRecorder 不录制音频
【发布时间】:2017-04-18 19:27:10
【问题描述】:

我尝试使用 MediaRecorder 录制音频:

MediaRecorder recorder= new MediaRecorder();
recorder.reset();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//
recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);
recorder.setMaxDuration(30*60*1000);
recorder.prepare();
recorder.start();

代码运行良好,运行时不会出现异常,有时文件不会在 SDCard 上创建,如果文件将创建则文件大小为 0KB。

我还注册了错误和信息监听器OnInfoListenerOnErrorListener OnInfoListener public void onInfo(MediaRecorder mr, int what, int extra) 返回 what=802 和 extra=6 我已经在真实设备上尝试过这段代码,但无法正常工作。

【问题讨论】:

  • 尝试删除重置行。
  • 我已经尝试删除重置行,但问题仍然存在。
  • 您最终找到导致问题的原因了吗?

标签: android audio-recording android-mediarecorder


【解决方案1】:

试试这个对我有用:

MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start();

【讨论】:

    【解决方案2】:

    这是 MediaRecorder 捕获媒体的绝佳参考。 http://developer.android.com/guide/topics/media/audio-capture.html

    本教程中使用的示例代码无需任何更改即可工作。 (只需确保您在清单文件中添加了必要的权限)

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。
    【解决方案3】:

    你可以试试这个:

                    mRecorder = new MediaRecorder();
                    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                    mRecorder.setOutputFile(mFileName);
                    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    
                    try {
                        mRecorder.prepare();
                    } catch (IOException e) {
                        Log.e("start", "prepare() failed");
                    }
    
                    mRecorder.start();
    

    如果遇到任何错误,请粘贴 logcat。

    【讨论】:

    • 第一步你可以在sd卡中找到你的文件吗?
    • 如果我尝试录制音频 10 次,那么在 10 次尝试中,会在 sd 卡中创建两次文件,但第 8 次文件未在 sd 卡中创建。
    • 浏览器显示 pastebin.com/X27pg7Ys 的“找不到服务器”错误
    • 这可能意味着设备没有麦克风......也许。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2011-08-18
    相关资源
    最近更新 更多