2013-06-12 30 views
5

Được rồi, về cơ bản chúng tôi có jRecorder được triển khai trên trang web của chúng tôi, cung cấp khả năng thu âm thanh ở định dạng WAV.Khi mã hóa sang MP3 trong ShineRecorder, mã hóa sẽ dừng nếu âm lượng quá cao

Bây giờ, sau khi chụp, chúng tôi sử dụng ShineMP3Encoder để chuyển đổi WAV sang MP3 (để tiết kiệm kích thước tệp). Điều này tất cả hoạt động tốt.

Rất nhiều người gặp sự cố trong đó nếu mức âm thanh được ghi quá cao, mã hóa MP3 sẽ dừng hoàn toàn và tệp sẽ bị hỏng/ngắn. Khi thực hiện điều này với một WAV, có vẻ như WAV không quan tâm đến âm thanh được ghi lớn như thế nào và sẽ vui vẻ phát lại âm thanh như thế nào.

Tôi đánh giá cao câu hỏi của mình là vô cùng thích hợp, nhưng sau khi đập đầu vào tường trong nhiều ngày, đây là lựa chọn duy nhất khác của tôi.

Đối với những gì nó có giá trị, đây là ActionScript mà đã sử dụng để ghi lại (nó bog tiêu chuẩn ShineMP3 thực hiện):

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

cố gắng tạo lại lỗi. Bạn có thể cung cấp tệp wav không? Điều gì khiến bạn nghĩ rằng mức âm thanh cao? –

+0

Ngoài ra, bạn có đang nghe bất kỳ ErrorEvent nào trong khi mã hóa không? –

+0

@PlasticSturgeon Để tái tạo nó, bạn có thể chỉ cần thổi vào micro càng cứng càng tốt. Tôi đã thử nghe ErrorEvent nhưng vô ích. – mattytommo

Trả lời

0

Một khả năng là mã hóa đang chạy chậm hơn so với các vòng trên những đường ray, gây ra một lỗi. Hãy thử làm cho bộ mã hóa chạy chậm hơn và xem có khắc phục được lỗi hay không.

Trong phương thức start() của ShineMP3Encoder.as thay

timer = new Timer(1000/30); 

với

timer = new Timer(150); 

Đó là dòng 37 trong cơ sở mã hiện hành.

+0

Chúc mừng cho phản ứng, nhưng tôi nghĩ rằng nó thực sự ném một lỗi trên mã hóa, nhưng không được nâng lên bên trong ActionScript. Tôi sẽ thử điều đó và xem điều gì xảy ra. – mattytommo