2

내 앱에서 최대 8 초의 동영상을 녹화해야합니다. 이것은 MediaRecorder.setMaxDuration (long milliseconds)로 이미 구현됩니다. 앱에는 상단에 진행률 막대가 있어야하고 나머지 시간이 카운트 다운되는 레이블이 필요합니다.Android - MediaRecorder 콜백 녹음 시작

여기서 문제는 UI와 MediaRecorder 진행간에 오프셋이 있으며 이로 인해 사용자에게 혼란이 있음을 의미합니다. 예를 들어, 사용자는 UI의 진행이 그렇게 말했기 때문에 그/그녀가 무언가를 기록했다고 생각하지만, 미디어 레코더는 비디오를 더 일찍 끊어 버립니다.

레코더가 실제로 녹음을 시작하는 것과 정확히 동시에 진행률 표시 줄과 카운터를 시작해야합니다. MediaRecorder.start() 다음에 타이머를 시작하려고했는데, 처음 생성 된 파일을 수정할 때 콜백하지만 올바른 방법으로이를 수행 할 방법을 찾지 못했습니다. 우리는이 값들에 대해 하드 코딩 된 오프셋을 설정하려고 시도했지만 물론 모든 장치에서 동일하게 작동하지 않았습니다.

MediaRecorder에서 실제로 비디오 또는 현재 길이를 기록하기 시작했음을 알리는 콜백이 있었으면합니다.

문제가 해결 되었습니까? 누군가 이것을 풀어 봤나?

답변

0

MediaRecorder에는 오디오를 일찍 끊는 것으로 알려진 문제점이 있습니다. 버튼이있는 레코더를 구현했습니다. 레코더를 중지하기 위해 버튼을 클릭하면 마지막으로 끊어진 오디오 파일이 실제로 출력됩니다. UI 오프셋이 별개의 문제인지는 확실치 않지만 사용자가 종료하려고 시도한 후에도 MediaRecorder가 0.5 초 연장됩니다. 최대 시간을 8.5 초로 변경하거나이 코드 줄을 사용하면됩니다.

android.os.SystemClock.sleep(500); 
관련 문제