2013-11-03 71 views
0

我正在开发一个android应用程序,我想录制一个呼叫的双向音频。我正在通过模拟器进行测试,通过执行gsm调用,然后从我的应用程序中按下开始记录按钮。录制2路呼叫导致异常

我继续,虽然收到以下错误:

java.lang.RuntimeException: start failed. 

下面是我怎么了执行记录:

private void startRecording() 
    { 
     mRecorder = new MediaRecorder(); 
     mRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 
     mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     mRecorder.setOutputFile(mFileName); 
     mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
     try 
     { 
      mRecorder.prepare(); 
      mRecorder.start(); 
     } 
     catch (IOException ex) 
     { 
      Log.e(LOG_TAG, ex.toString()); 
     } 
     catch (Exception ex) 
     { 
      Log.e(LOG_TAG, ex.toString()); 
     } 

    } 

,我读了一些设备不允许双向录音和在这种情况下,您应该默认回到使用MIC进行录制,但是,我认为这不是模拟器的原因。

感谢您的帮助,您可以提供,

+0

_“我认为这不会是模拟器的原因”_。我不会赌钱。当你调用'prepare'和'start'时,你还有更多日志吗? – Michael

+0

似乎没有记录,虽然自从更新SDK和ADT工具时,我确实遇到了另一个问题,即当我向仿真器发出调用时,ADB会从仿真器断开连接。我想这就是为什么没有日志 – Boardy

+0

请确保您已将适当的*权限*添加到清单文件中。 – RobinHood

回答

0

documentation,你可以找到:

注:目前,MediaRecorder不会在模拟器上工作。

希望它能帮助你。

+0

啊谢谢。我确实阅读过这个文档,但从未注意到这个警告。有点烦人,它不能在模拟器上工作,因为这意味着我必须不断拨打我的手机,这在调试过程中可能会变得昂贵。 – Boardy