2013-06-12 3 views
5

기본적으로 우리는 WAV 형식으로 오디오를 캡처하는 기능을 제공하는 웹 사이트에 jRecorder을 구현했습니다.ShineRecorder에서 MP3로 인코딩 할 때 볼륨이 너무 높으면 인코딩이 중지됩니다.

캡쳐 후에는 파일 크기를 줄이기 위해 ShineMP3Encoder을 사용하여 해당 WAV를 MP3로 변환합니다. 이 모든 것이 잘 작동합니다.

녹음 된 오디오 레벨이 너무 높으면 MP3 인코딩이 완전히 중단되고 파일이 손상되거나 짧아지는 등의 문제가 발생했습니다. WAV로이를 수행 할 때, WAV는 녹음 된 오디오가 얼마나 큰지 신경 쓰지 않고 행복하게 재생할 것입니다.

내 질문에 감사합니다 믿을 수없는 틈새,하지만 며칠 동안 벽에 내 머리를 두드리는 후, 이것은 내 유일한 다른 옵션입니다. 그것은 가치가 무엇인지에 대한

,이 기록에 사용 (그것의 늪지 표준 ShineMP3 구현)이었다 액션입니다 :

//recorder.output is outputted from jRecorder 
mp3Encoder = new ShineMP3Encoder(recorder.output); 
mp3Encoder.addEventListener(Event.COMPLETE, mp3EncodeComplete); 
mp3Encoder.start(); 
+0

버그를 재현하려고합니다. wav 파일을 제공 할 수 있습니까? 왜 당신은 높은 오디오 레벨을 생각하게합니까? –

+0

또한 인코딩 중에 ErrorEvent를 수신하고 있습니까? –

+0

@PlasticSturgeon 재현하려면 최대한 힘들게 마이크에 날려주십시오. ErrorEvent를 듣고 있지만 아무 소용이 없습니다. – mattytommo

답변

0

하나의 가능성은 인코딩이, 그 트랙의 루프보다 느리게 실행의 원인이되는 것입니다 오류. 인코더를 느리게 실행하여 오류가 수정되었는지 확인하십시오. ShineMP3Encoder.as 개시() 메소드

라인 현재 코드베이스 (37)의

timer = new Timer(150); 

으로

timer = new Timer(1000/30); 

대체.

+0

응원에 응원하지만 실제로는 인코딩에서 오류가 발생하지만 ActionScript 내부에서 발생하지는 않습니다. 나는 그것을 시도 할 것이고 어떤 일이 일어날지를 볼 것이다. – mattytommo