Volledige versie bekijken : Streaming external MP3 zonder hapering op de loop
tha beaver
%Europe/Berlin %046 %2005, 01:06
Hoi Flashers,
Op vele forums is over dit onderwerp veel terug te vinden maar nog niet 100% het antwoord wat ik zoek.
De vraag is als volgt.
Ik wil een externe Mp3 file streaming laden en laten loopen zonder hapering op het moment van loopen.
Ik gebruik de volgende code:
mySound=new Sound();
mySound.loadSound("sounds/portis4.mp3",true);
mySound.onSoundComplete = function()
{
mySound.start();
}
Het is natuurlijkniet meer dan logisch dat flash en mijn pc iedere keer aan het einde van het nummer de code:
mySound.onSoundComplete = function()
{
mySound.start();
}
Uit moet voeren (dit kost tijd en dus hoor je de overgang.
Hoe los ik dit op oh wijze heren en dames....
Oh ja ps ik wil niet de mp3 op een frame zetten.
PS luisteren kan op: http://www.xs4all.nl/~festen/lightworks/main.html
Roenes
%Europe/Berlin %057 %2005, 01:23
mySound.onSoundComplete = function()
{
mySound.start(0, 9999);
mySound.onSoundComplete = null;
}Dit voorkomt al dat je na de 1e hapering nog meer haperingen krijgt. Doordat je in de start methode aangeeft hoevaak je sound geloopt moet worden. Nadat je sound de 1e keer wordt afgespeeld, zul je een hapering horen omdat dan toch 1x de onSoundComplete wordt aangeroepen. Dit kun je er niet uit halen aangezien je je sound streamed. Als je dat niet doet, kun je het start statement in de onLoad zetten en zul je geen hapering hebben.
Je zult je dus moeten afvragen of je het muziekje perse wil streamen :)
tha beaver
%Europe/Berlin %362 %2005, 08:41
Hoi Roenes,
Dank voor je antwoord,
Ik probeer nu:
mySound=new Sound();
mySound.loadSound("sounds/portis4.mp3",true);
mySound.onSoundComplete = function()
{
mySound.start(0, 9999);
mySound.onSoundComplete = null;
}
Maar het gekke is dat het de muziek maar 1 keer op nieuw wordt afgespeeld. Daarna stopt het gewoon.
TheDutch
%Europe/Berlin %405 %2005, 09:44
De code moet nu volgensmij zo zijn. Heb het alleen niet getest :).
mySound=new Sound();
mySound.loadSound("sounds/portis4.mp3",false);
mySound.start(0, 9999);
Streaming boolean op false gezet.
@Flasher: lekker scherp in de ochtend ;).
Flasher
%Europe/Berlin %408 %2005, 09:48
Uit de help:
start (Sound.start method)
public start([secondOffset:Number], [loops:Number]) : Void
Parameters
secondOffset:Number [optional] - A parameter that lets you start playing...
loops:Number [optional] - A parameter that lets you specify the number of times the sound should play consecutively. This parameter is not available if the sound is a streaming sound.
Je zult dus of elke keer zo'n hapering krijgen of eerst moeten inladen en dan pas afspelen (dus niet streamen)
Gerrit55
%Europe/Berlin %416 %2005, 10:00
Als je streaming een geluid wilt loopen moet je dit in een mc (of _root) zetten:
snd = new Sound();
mp3 = "sounds/portis4.mp3";
function laadSound () {
snd.loadSound(mp3, true);
}
snd.onSoundComplete = laadSound
laadSound();
stop()
Als je streamed hoef je je geluid niet te starten, dat gebeurt automatisch.
Bij souncomplete wordt je geluid geladen, hiertussen kan een kleine delay itten, afhankelijk van de verbindingssnelheid en grootte van je mp3.
TheDutch
%Europe/Berlin %430 %2005, 10:19
ol55, volgensmij is dat nu juist wat tha_beaver niet wilt en dus het probleem is ;).
Laiverd
%Europe/Berlin %440 %2005, 10:34
Als je nou weet dat loopen alleen goed kan werken als je geluid niet streaming laadt en je wilt toch streamen, waarom laadt je dan de eerste keer niet streaming en onSoundComplete niet-streaming. Je zult dan de eerste keer een hapering horen, maar de tweede en volgende keren niet keer niet. Het geluid bevindt zich dan al in de cache en zal de tweede keer dus vrij snel geladen zijn.
Of; je laadt je geluid streaming en start direct een tweede sound instance die niet streaming is en die je niet direct start. Die tweede instance start je onSoundComplete van de eerste.
John
TheDutch
%Europe/Berlin %448 %2005, 10:45
Je moet wel twee sound objecten gebruiken. Eén om de streaming sound de eerste keer te laten horen en de tweede om de mp3 gewoon in te laden zonder streaming en die te loopen. Dit omdat je een streaming sound object niet kunt loopen met het loop attribute :).
Dus dit zou in mijn ogen moeten werken:
this.createEmptyMovieClip("soundStageStream",this.getNextHighestDepth());
this.createEmptyMovieClip("soundStageLoop",this.getNextHighestDepth());
mySoundStream=new Sound(soundStageStream);
mySoundLoop=new Sound(soundStageLoop);
mySoundStream.loadSound("sounds/portis4.mp3",true);
mySoundLoop.loadSound("sounds/portis4.mp3",false);
mySoundStream.start();
mySoundStream.onSoundComplete = function()
{
mySoundLoop.start(0, 9999);
}
tha beaver
%Europe/Berlin %470 %2005, 11:17
Ik ga het direct proberen dank voor alle reacties
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.