Toon posts:

[Flash AS] Automatisch naar volgende audiosample in player

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor mijn eerste full-flash-website ben ik zelf een klein mediaplayertje aan het bouwen. De bedoeling hiervan is dat hij 5 mp3 samples laat horen.

Ik heb dit vaker gedaan en kom dan altijd uit op een werkende player, met n play/pauze, stop en next knop. Het enige wat ik niet voor elkaar kan krijgen is dat de player automatisch doorgaat naar het volgende sample zodra het sample ervoor is afgelopen.

Mijn player zit als volgt in elkaar:
Layer 1, frame 1: Start sample a.mp3
Layer 2, frame 10: Start sample b.mp3
Layer 3, frame 20: Start sample c.mp3
etc.

De knop stop heeft een stopallsounds() command en schiet hierbij terug naar het begin-frame van het sample wat dan speelt, de next knop skipped naar het frame waar een nieuw sample begint.
De samples zijn op de server geupload en worden op het aanroep-frame gestart met de AS code:

code:
1
2
3
4
5
6
7
8
9
10
11
//Load Streaming mp3 behavior
if(_global.Behaviors == null)_global.Behaviors = {};
if(_global.Behaviors.Sound == null)_global.Behaviors.Sound = {};
if(typeof this.createEmptyMovieClip == 'undefined'){
    this._parent.createEmptyMovieClip('BS_loco',new Date().getTime()-(Math.floor((new Date().getTime()) /10000)*10000) );
    _global.Behaviors.Sound.loco = new Sound(this._parent.BS_loco);
} else {
    this.createEmptyMovieClip('_loco_',new Date().getTime()-(Math.floor((new Date().getTime()) /10000)*10000) );
    _global.Behaviors.Sound.loco = new Sound(this.BS_loco);
}
    _global.Behaviors.Sound.loco.loadSound("http://www.hierstaatde.nl/file.mp3",true);


Ik denk dat ik wat kan doen met een timerfuntie, dit wordt dan echter niet dynamisch, dan moet ik de lengte van het sample omrekenen in (ik geloof dat flash met milliseconden werkt) ms en vervolgens handmatig b.v. 'na x ms door naar frame 10' programmeren. Hier heb ik niet zoveel informatie over gevonden en ik zoek eigelijk meer naar een functie die kijkt naar het mp3 bestand zelf en zodra deze afgelopen is doorgaat naar het volgende sample.

(Ik geloof er niks van dat ik de meest geavanceerde en programmeer technisch correcte opbouw heb toegepast in mijn player maar daarvoor doe ik het niet, iedereen kan een script van internet halen maar ik wil graag de globale achterliggende werking begrijpen en in staat zijn zelf zoiets, in simpele vorm, te bouwen.)

[ Voor 20% gewijzigd door Verwijderd op 03-07-2007 11:58 ]


  • LB Back
  • Registratie: November 2004
  • Laatst online: 03-06 11:07
Kijk eens naar de onSoundComplete functie, die doet exact wat jij wil.

Verwijderd

Topicstarter
Werkt die ook bij een extern ingeladen streaming soundfile? Ik heb namelijk het geluid niet in mijn swf geimporteerd..

Ik ga even testen :)

Edit: bij loco.onSoundComplete(_root.mediaplayer.gotoAndPlay(10)); loopt het geluid maar voor de duur van het aantal frames vanaf de start audio tot de onSoundComplete. Blijkbaar kan flash bij een externe mp3 niet nagaan of hij klaar is met afspelen?

[ Voor 46% gewijzigd door Verwijderd op 03-07-2007 16:15 ]


  • LB Back
  • Registratie: November 2004
  • Laatst online: 03-06 11:07
jawel dat kan wel; min of meer direct uit de Flash help gecopieerd:
code:
1
2
3
4
5
6
7
function callback1() {
    trace("mySoundID completed");
}
var my_sound:Sound = new Sound();
my_sound.loadSound("jouw.mp3", true);
my_sound.onSoundComplete = callback1;
my_sound.start();