2009-03-20 2 views
6

URL에 wav 파일이 있다고 가정 해 보겠습니다.플래시 플레이어가 URL에서 .wav 파일을 재생할 수 있습니까?

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입니까?

+0

어떤 코덱 당신의 WAV가로 인코딩은? Wav는 사운드 포맷이 아닌 컨테이너입니다. 원시, MP3, uLaw 등을 포함 할 수 있습니다. – strager

+0

대다수의 wav는 원시입니다. 그리고 나는 어쨌든이 경우 중요하지 않다고 생각합니다. 중요한 컨테이너 형식입니다. – aaaidan

+0

파일 – Geo

답변

5

직접적으로 ByteArray 덕분에 해결 방법이 있습니다.)

에 체크 아웃 :

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

편집 :

이전 링크되는 조금 오래된 나는 당신은 또한 안드레와 조아의 멋진에보고해야한다 생각한다 PopForge 라이브러리. 실제로 wav 디코더 클래스도 있습니다.

예, 당신이 할 수있는
2

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

. Wav/Au Flash 플레이어를 만들었습니다. 스트림 wav를 재생할 수 있습니다. G.711 또는 PCM으로 인코딩 된 비트 길이 및 샘플러입니다. 여기, GPLv2에 따라 사용이 허가 : http://blog.datacompboy.ru/2009/10/15/wav-au-flash-player/ 여기

+1

이 게시물에 대해 알려주세요. 나는 약 1 시간을 찾고 있었고, 보편적 인 해결책을 찾는 것은 아주 힘들다. 나는 이것이 브라우저의 호환성과 최소의 부하로 당신의 웹 페이지에서 다른 작은 사운드 클립을 재생할 필요가있을 것입니다. 그것은 당신이 기대하는 바를 정확하게 테스트하고 삽입하기 쉽습니다.자식 코드의 스냅 샷을 얻으십시오. http://git.datacompboy.ru/?p=WavPlayer.git;a=snapshot;h=b24cc6500058ec35c95953095c797865488416dd;sf=tgz 그러면 웹 디렉토리에 넣으십시오. 사운드 레코더를 사용하여 gsm으로 인코딩 된 WAV를 만들고, tinyembed.html과 동일한 디렉토리에 넣으십시오. – PatlaDJ

9

로드 및 오픈 소스 popforge 라이브러리를 사용하여 플래시에 URL에서 wav 파일을 재생하기위한 간단한 클래스 : http://code.google.com/p/popforge/

환호!

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

URL에서 .wav로드/재생을 수행 할 때이 작업이 실제로 허용 된 대답이어야합니다. 허용 된 대답은 Sound 클래스가 URL에서 .wav를로드하는 것을 지원하지 않는다는 것을 지적하는 것입니다. – prototypical

0

플래시 자체는 .wav 파일 재생을 지원하지 않습니다. Flash/Flex Builder는 스크립트에서 바로 재생할 Sound 객체로 직접 컴파일하지만 외부 .wav 사운드의 경우 Flash SDK가 도움이되지 않습니다.

.wav 데이터를 직접 읽고 Flash를 재생해야합니다. 그렇지 않은 경우 주변에 두 번째 타사 라이브러리가 있어야합니다. 위의 포스팅은 여기 popforge를 사용하는 URL에서 외부 .wav 파일을 재생 as3wavsound 보여줍니다 튜토리얼입니다 :

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

관련 문제