Может ли флэш-плеер воспроизводить файлы .wav с URL-адреса? - PullRequest
6 голосов
/ 21 марта 2009

Допустим, у меня есть WAV-файл по URL:

http://hostname.com/mysound.wav

Я пытаюсь загрузить файл wav с классом звука, например:

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

Однако, похоже, это не работает. Может ли флэш-плеер воспроизводить файлы в формате WAV или это просто MP3-файлы?

Ответы [ 5 ]

13 голосов
/ 21 марта 2009

В документации ActionScript для класса Sound указано, что поддерживаются только файлы MP3.

9 голосов
/ 17 октября 2010

здесь простой класс для загрузки и воспроизведения wav-файлов из URL во флэш-памяти с использованием библиотеки popforge с открытым исходным кодом: http://code.google.com/p/popforge/

ура! * * 1004

    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();
      }


 }
5 голосов
/ 21 марта 2009

Непосредственно вы не можете, но есть обходные пути благодаря ByteArray; )

Проверьте это:

http://richapps.de/?p=97

EDIT:

Предыдущая ссылка немного устарела. считаю, что вы также должны посмотреть на Андре и Джоа сказочные PopForge библиотека. Там на самом деле WAV там тоже класс декодера.

http://code.google.com/p/popforge/source/browse/#svn/trunk/flash/PopforgeLibrary/src/de/popforge/format/wav

2 голосов
/ 17 октября 2009

Да, вы можете. Я сделал Wav / Au Flash Player, который может воспроизводить потоковый WAV, закодированный в G.711 или PCM с любой длиной битов и частотой дискретизации Лицензировано под GPLv2, здесь: http://blog.datacompboy.ru/2009/10/15/wav-au-flash-player/

0 голосов
/ 17 июня 2011

Flash сама не поддерживает воспроизведение файлов .wav. Flash / Flex Builder компилирует его непосредственно в объект Sound, готовый для воспроизведения в ваших сценариях, но для внешнего звука .wav Flash SDK вам не поможет.

Вам нужно будет самостоятельно прочитать данные .wav и запустить Flash play, или: есть несколько сторонних библиотек, которые делают это для вас. В приведенном выше посте используется popforge, здесь приведено руководство, в котором as3wavsound воспроизводит внешний файл .wav с URL-адреса:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...