Question

J'ai fait un petit mélange des cartes mashup, traduire api et flickr. Je reçois les instructions de mes carte et faire des fichiers mp3 à la volée pour les jouer en même temps, mais ils jouent uniquement dans Firefox et pour le reste des navigateurs, je ne reçois que mon premier canal sonore avec musique de fond. ne peut pas comprendre pourquoi. Toute aide est très appréciée.

    private var _sound:Sound;
private var _sc:SoundChannel;
private var _isPlaying:Boolean;
private var _url:String;
private var myWatcher:ChangeWatcher;
private var isPlaying:Boolean;

private function _generateSpeech():void {

 var txt:String = description.text;
 var url:String = "http://translate.google.com/translate_tts?tl=en&q=" + txt;
 _url = url;
 var req:URLRequest = new URLRequest(url);

 _sound = new Sound();
 _sound.addEventListener(Event.OPEN, _soundOpenHandle, false, 0, true);
 _sound.addEventListener(ProgressEvent.PROGRESS, _soundProgHandle, false, 0, true);
 _sound.addEventListener(Event.COMPLETE, _soundLoadedHandle, false, 0, true);
 _sound.addEventListener(IOErrorEvent.IO_ERROR, _errorHandle, false, 0, true);
 _sound.load(req,null); 
}
private function _soundOpenHandle(e:Event):void {isPlaying = false;}
private function _soundProgHandle(e:ProgressEvent):void {isPlaying = true;}
private function _soundLoadedHandle(e:Event):void {isPlaying = true;}
private function _playbackCompleteHandle(e:Event):void {isPlaying = false;}
private function _errorHandle(e:IOErrorEvent):void {trace(e);}

private function _playSpeech():void {
 _generateSpeech(); 
 _sc = new SoundChannel();
 if (!isPlaying){_sc = _sound.play(0,0,null);}
 _sc.addEventListener(Event.SOUND_COMPLETE, _playbackCompleteHandle, false, 0, true);
}
public function initWatcher():void {
 ChangeWatcher.watch(description, "text", watcherListener); 
}
// Event listener when binding occurs. 
public function watcherListener(event:Event):void {   
 if (!isPlaying){_playSpeech(); }
}
Était-ce utile?

La solution

_sc = new SoundChannel();
 if (!isPlaying){_sc = _sound.play(0,0,null);}
 _sc.addEventListener(Event.SOUND_COMPLETE, _playbackCompleteHandle, false, 0, true);

if (!isPlaying){
    _sc = _sound.play(0,0,null);}

    if( _sc ) {
        _sc.addEventListener(Event.SOUND_COMPLETE, _playbackCompleteHandle, false, 0, true);
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top