2014-03-05 2 views
0

Android에서 오디오를 녹음합니다. 관련 스 니펫은 다음과 같습니다MediaRecorder가 AAC를 생성하도록 강요합니다. LC

mediaRecorder = new MediaRecorder(); 
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS); 
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 

그러나 결과 adts 파일은 AAC LTP (Long Term Prediction) 개체 유형으로 기록됩니다. MediaRecorder가이를 지원하는 모든 장치에서 AAC LC를 생성하도록 강제하는 방법이 있습니까?

+0

비슷한 문제가 있습니다. ExoPlayer를 사용하여 스트리밍 오디오를 재생합니다. AAC_LC로 인코딩 된 오디오는 처리 할 수 ​​있지만 AAC LTP는 인코딩 할 수 없습니다. AAC LTP로 녹음 된 샘플은 Android 용 Chrome 앱에서도 재생되지 않습니다. exoplayer 팀은 AAC LTP가 지원되는 형식이 아니라고 말합니다. 나는이 샘플들이 안드로이드에 기록되었다고 믿는다. 안드로이드는 재생할 수없는 콘텐츠를 녹화하고있다. Enhanced Low Delay를 나타내는 또 다른 AudioEncoder 옵션 인 AAC_ELD가 있습니다. 그것이 우리의 문제를 해결할 AAC LC만을 생산한다면. 그러나 그것의 설명에서 그것은 도움이되지 않는 것처럼 들린다. – user1743524

답변

0

실제로 LC 인 경우 ADTS 파일에 LTP 개체 유형이있는 것으로 태그 지정하는 버그가 미디어 프레임 워크에 있습니다. Android가 LTP를 지원하지 않기 때문에 이러한 파일은 재생시 거부됩니다. 대신 THREE_GPP 파일 형식을 사용하여 녹음하면 녹음이 잘됩니다.

관련 문제