2009-03-03 8 views
0

나는 몇 달 동안이 문제를 핥기 위해 노력해 왔습니다 ... Flash 9에서 스트리밍 MP3 파일을로드하고 트랙 길이를 계산하려고합니다. 괜찮아요.하지만 mp3의 채널이 모노 인 경우 시간은 원래 트랙 길이의 두 배입니다. 어떻게 알았지? 음, 필자는 Windows에서 Sound Recorder로 녹음을 테스트했지만 운 좋게도 MP3를 Stereo에 녹음하는 것을 잊어 버렸습니다.플래시 9 : 스트리밍 트랙이 모노인지 확인하는 방법?

이제 Flash에서는로드 된 바이트, 총 바이트 수, 재생 위치 및 사용하려고 생각하는 모든 수식을 사용하여 여러 가지 길이를 계산해 보았습니다. 수학은 괜찮아요. 문제는 플래시가 mp3를로드 할 때 파일이 스테레오 상태에 있다고 자동으로 가정한다는 것입니다. 따라서 데이터를로드 할 때 특정 크기의 한 채널을 인식하고 스테레오를 두 배로 늘리기 때문에 데이터가 있다고 생각하는 바이트 수가 두 배가됩니다. 이렇게하면 정확한 수학으로 트랙 길이가 두 배로되는로드 크기의 잘못된 값이 생성됩니다. 이것이 모노가 우리가 사용하는 일반적인 공식으로는 작동하지 않는 이유입니다.

이 문제를 해결하려면 파일이 모노인지 스테레오인지 확인해야합니다. ID3 데이터도 잘못된 값을 반환하므로 이미 soundTransform.leftToLeft, soundTransform.leftToRight, soundTransform.rightToLeft 및 soundTransform.rightToRight (스테레오 사운드의 값을 반환 함)를 사용하여 수동으로 결정 해 보았습니다.

Flash에서 파일의 오디오 채널을 올바르게 알려주지 못합니다. 이미 무언가를 내려다보고 도움이나 문제 해결 팁을 얻었 으면 좋겠습니다. 이미 시도했는지 여부에 관계없이 크게 감사하겠습니다.

+0

문제 해결 : 어떤 이유로 든 Flash는 한 채널에서 발견 한 바이트 수를 두 배로 늘립니다 (스테레오라고 가정하기 때문에). 로드가 완료된 후 최종 크기를 다시 계산해야했습니다. 한 번, 두 번이 아닙니다! 나 한테 묻지마. 한 번만해도 2 배가 돌아 왔지만 두 번 반복하면됩니다. –

답변

0

ID3이 맞습니까?
스테레오/모노 문제가 아닌 손상된 헤더 때문에 잘못된 길이를보고하는 mp3가 여러 개 있습니다.

+0

정기적으로 녹음 된 mp3의 경우 태그는 정확하지만이 태그가 녹음기로 작성되었으므로 ID3 태그가 없습니다. 그래서, 그것은 조건문을 건너 뜁니다. 나는 그렇게 말 했어야했다. –