2014-09-11 2 views
2

저는 사용자가 내 앱에 오디오를 녹음 할 수 있도록 MediaRecorder를 사용하고 있으며 대다수 (내 모든 테스트 장치)에서 정상적으로 작동하고 있습니다. 관련 코드는 다음과 같습니다MediaRecorder OnInfoListener가 895를 제공합니다.

나는 그들이 오디오를 녹음 할 수없는 사용자로부터보고 있었다
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 웹 로그 분석을 추가하고 내가 오류 추적 할 수 있는지 그 리스너 내에서 이벤트를 기록합니다

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()); 
     } 
    }; 

을 당신은 내가 '무엇'과 '추가를 통과하고 볼 수 있듯이 '매개 변수를 웹 로그 분석에 추가하여 어떤 종류의 오류가 발생하는지 확인할 수 있습니다.

오늘 아침 (지금까지 데이터를 전송하는 하루 만에) 필자는 문서에서 볼 수있는 800 개 중 몇 가지를보고 있는데, 그 중 최대 기간은 도달했지만 나머지는 895의 '무엇'을 Media.Recorder 문서에서 찾을 수 없습니다.

895의 의미에 대한 의견이 있으십니까?

답변

2

동일한 문제가 발생했습니다. 내 장치 정보 코드 895에서 녹음이 진행 중임을 의미합니다. 녹음을 중지 할 필요가 없음을 의미합니다.