2009-03-20 29 views
6

Hãy nói rằng tôi có một file wav tại một url:Trình phát flash có thể phát các tệp .wav từ url không?

http://hostname.com/mysound.wav 

Tôi đang cố gắng để tải file wav với lớp âm thanh như:

var url:String = "http://hostname.com/test.wav"; 
var urlRequest:URLRequest = new URLRequest(url); 
var sound:Sound = new Sound(); 
sound.load(urlRequest); 
sound.play(); 

Tuy nhiên, điều này dường như không công việc. Người chơi flash có thể chơi các tệp wav hay chỉ là mp3?

+0

bộ giải mã là gì wav của bạn được mã hóa trong? Wav là một container, không phải là một định dạng âm thanh. Nó có thể chứa raw, MP3, uLaw, và những thứ khác. – strager

+0

Phần lớn các wav là nguyên mặc dù. Và tôi không nghĩ rằng nó quan trọng trong trường hợp này anyway. Đó là định dạng container quan trọng. – aaaidan

+0

Bạn có thể bí mật tập tin – Geo

Trả lời

2

Vâng, bạn có thể. Tôi đã tạo trình phát Flash Wav/Au, có thể phát luồng wav, được mã hóa bằng G.711 hoặc PCM ở bất kỳ độ dài bit và lấy mẫu nào. được cấp phép dưới GPLv2, ở đây: http://blog.datacompboy.ru/2009/10/15/wav-au-flash-player/

+1

Hãy để tôi kể cho bạn điều gì đó về bài đăng này. Tôi đã tìm kiếm khoảng một giờ, khá khó khăn để tìm giải pháp phổ quát. Tôi SWEAR đây là CHÍNH XÁC những gì bạn sẽ cần để chơi các clip âm thanh nhỏ khác nhau trên trang web của bạn với khả năng tương thích trình duyệt tối đa và tải tối thiểu. Nó thực hiện những gì bạn mong đợi, dễ dàng để kiểm tra và nhúng.Nhận ảnh chụp nhanh của mã git: http://git.datacompboy.ru/?p=WavPlayer.git;a=snapshot;h=b24cc6500058ec35c95953095c797865488416dd;sf=tgz sau đó chỉ cần đưa vào thư mục web. Tạo WAV mã hóa GSM của bạn với Sound Recorder, đặt trong cùng một thư mục như tinyembed.html để xem những gì tôi đang nói về – PatlaDJ

9

đây một lớp đơn giản để tải và chơi các file wav từ một url trong flash sử dụng nguồn thư viện popforge mở: http://code.google.com/p/popforge/

cheers!

public class WavURLPlayer 
    { 


     public static function PlayWavFromURL(wavurl:String):void 
     { 
     var urlLoader:URLLoader = new URLLoader(); 
     urlLoader.dataFormat = URLLoaderDataFormat.BINARY; 
     urlLoader.addEventListener(Event.COMPLETE, onLoaderComplete); 
     urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onLoaderIOError); 

     var urlRequest:URLRequest = new URLRequest(wavurl); 

     urlLoader.load(urlRequest); 
     } 

     private static function onLoaderComplete(e:Event):void 
     { 
     var urlLoader:URLLoader = e.target as URLLoader; 
     urlLoader.removeEventListener(Event.COMPLETE, onLoaderComplete); 
     urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, onLoaderIOError); 

     var wavformat:WavFormat = WavFormat.decode(urlLoader.data); 

     SoundFactory.fromArray(wavformat.samples, wavformat.channels, wavformat.bits, wavformat.rate, onSoundFactoryComplete); 
     } 

     private static function onLoaderIOError(e:IOErrorEvent):void 
     { 
     var urlLoader:URLLoader = e.target as URLLoader; 
     urlLoader.removeEventListener(Event.COMPLETE, onLoaderComplete); 
     urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, onLoaderIOError); 

     trace("error loading sound"); 

     } 

     private static function onSoundFactoryComplete(sound:Sound):void 
     { 
     sound.play(); 
     } 


} 
+3

Điều này thực sự phải là câu trả lời được chấp nhận vì nó hoàn thành tải/chơi một .wav từ một URL. Câu trả lời được chấp nhận chỉ là chỉ ra rằng lớp Âm thanh không hỗ trợ tải tệp .wav từ url. – prototypical

0

Tự flash không hỗ trợ phát tệp .wav. Flash/Flex Builder biên dịch trực tiếp vào một đối tượng Sound sẵn sàng để phát trong các tập lệnh của bạn, nhưng đối với âm thanh .wav bên ngoài, Flash SDK sẽ không giúp bạn.

Bạn sẽ cần tự đọc dữ liệu .wav và thực hiện phát Flash hoặc: có một số thư viện của bên thứ ba xung quanh thực hiện việc này cho bạn. Các bài trên sử dụng popforge, đây là hướng dẫn thể hiện as3wavsound chơi một file .wav bên ngoài từ một URL:

http://active.tutsplus.com/tutorials/media/quick-tip-play-external-wav-files-in-as3/

Các vấn đề liên quan