저는 사용자가 내 앱에 오디오를 녹음 할 수 있도록 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의 의미에 대한 의견이 있으십니까?