Потоковое аудио во Flash воспроизводится несколько раз, перекрывая - PullRequest
0 голосов
/ 13 сентября 2011

Следующий код AS3 иногда вызывает многократное воспроизведение звука, почти одновременно, как безумное эхо.Обычно он работает нормально с этим URL, но когда я использую URL https://soundcloud.com, он всегда выходит из себя.В редких случаях я думаю, что проблема возникала даже с локальными файлами.Я скопировал этот код откуда-то еще, поэтому я не совсем понимаю его.Вы видите проблему с этой реализацией или Flash просто сумасшедший?

var url:String = "http://md9.ca/portfolio/music/seaforth.mp3"; 

var request:URLRequest = new URLRequest(url);  
var s:Sound = new Sound();  
s.addEventListener(Event.COMPLETE, completeHandler);  
s.load(request);  var song:SoundChannel = s.play();  
song.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);  


var time:Timer = new Timer(20);  
time.start();

function completeHandler(event:Event):void {    
  event.target.play();  
}  

function soundCompleteHandler(event:Event):void {   
  time.stop();  
}

1 Ответ

2 голосов
/ 13 сентября 2011

Вы дважды вызываете play() для объекта Sound. Один раз при создании переменной song и еще раз, когда файл завершит загрузку.

Возможно, вы захотите структурировать свой код по-другому.

var url:String = "http://md9.ca/portfolio/music/seaforth.mp3"; 

var song:SoundChannel;
var request:URLRequest = new URLRequest(url);  
var s:Sound = new Sound();  
s.addEventListener(Event.COMPLETE, onLoadComplete );  
s.load(request);

function onLoadComplete(event:Event):void 
{    
  song = s.play();
  song.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);   
  s.removeEventListener( Event.COMPLETE, onLoadComplete );
}  

function soundCompleteHandler(event:Event):void 
{   
  trace( 'sound is complete' );  
  song.removeEventListener( Event.SOUND_COMPLETE, soundCompleteHandler );
}

Я удалил код Timer, так как он ничего не делал.

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