안녕하세요.
현재 웹서버에 저장되어있는 음악파일을
스트리밍 형식으로 받아 AS3의 Sound 클래스의 load(requst) 로 받아 재생시키는 플래시를 만들었습니다.
문제는 이 인터넷으로 부터 받아오는 파일경로에 대한 응답이 간간히 바로 오지 않는지... 간혹 서버에서 별 응답이 없을때가
있나봅니다..
20번 ~ 30번 재생하면 한번꼴로.. 서버에서 응답을 받지를 못하는것 같습니다. play(); 해도 당연히 노래는 안나오구요.
오랫동안 기다려도.. 노래재생은 안되더군요. (버퍼는 디폴트 값인 1초로 되어있습니다.)
문제는 이처럼 request 한 경로에서 제대로된 응답이 없을시.
sound.load(requst)를 재 실행하고 싶은데요.
서버측에서 응답이 지연되서 노래가 재생되지 않을 경우의 이벤트를 잡아내기가 너무 어렵더군요.
sound 클래스의 load메서드나 play메서드의 반환값도 그냥 void라...
이놈이 제대로 재생되고 있는지 아닌지 알수가 없네요.
sound 클래스 인스턴스 내부에서 load하는순간 해당경로의 서버로 요청이 가는거 같은데
서버의 응답이 매우 길게 지연될시.. 캐치해서 재요청 하는 프로그램을 작성하고 싶습니다.
음악을 재생시키는 부분의 소스는 다음과 같습니다.
var request:URLRequest = new URLRequest(http://경로/);
_sound = new Sound();
_sound.load(request);
_channel = _sound.play(); //_channel 은 SoundChannel 클래스의 인스턴스.
==============================================================================
_sound.load에 제대로된 응답이 들어가지 못하는 이벤트를 어떻게 캐치해야 할까요..어떤 이벤트를 리스닝 해야 하나요.ㅠㅠ
도와주세요.
읽어주셔서 감사합니다.
카프리콘 2025.10.02
답변 감사합니다^^ 저도 타이머 돌려서 하는 그방법 밖에 없나 싶어서... 여쭤본거였어요...ㅠㅠ
일단 말씀해주신데로 타이머 돌려서 재요청 처리는 해놓긴 했습니다.ㅠㅠ
글길 2025.10.02
예전에 파란서버에 mp3올리고 로드해오니...그렇게 지연이 되는경우가 종종있더군요...
error이벤트라도 오면 편하겠지만.....그땐 귀찮아서 다른 처리를 하지 않았습니다..
짐 생각엔 load요청할때 타이머를 돌리고...특정 시간이 될때까지 프로그래스 이벤트가 없다면...다음곡으로 넘기거나 다시 요청하는 코드를 넣어주면 될것같네요...