Ett ljud som "streamas" startar automatiskt när buffern är fylld. Om du inte använder stream utan preloadar ljudfilerna innan så kan du sedan använda start() för att starta alla fem ljuden samtidigt.
/Mirandir
6 svar · 367 visningar · startad av Janna
Hej igen,
Jag har gjort en musikixer som streamar 5 kanaler parallellt, spelar upp dessa och låter användaren själv reglera nivåer. (Se tidigare inlägg) Tanken är att den skall köras från en cd.
I IE fungerar det alldeles utmärkt men i Safari och Firefox så startar uppspelningen av ljuden inte samtidigt vilket ju får till följd att hela applikationen blir rätt meningslös för dessa användare... Troligtvis så laddas väl ljuden ett i taget och startar när just det ljudet har laddats tillräkligt mycket.
Går det att stoppa ett streamat ljud från att starta av sig själv och sedan starta alla fem ljuden samtidigt? Eller går det få Flash att ladda ljuden helt parallellt så att de startar exakt samtidigt även i Safari.
Tack på förhand för kloka svar och tips.
/Jan
Ett ljud som "streamas" startar automatiskt när buffern är fylld. Om du inte använder stream utan preloadar ljudfilerna innan så kan du sedan använda start() för att starta alla fem ljuden samtidigt.
/Mirandir
Ett ljud som "streamas" startar automatiskt när buffern är fylld. Om du inte använder stream utan preloadar ljudfilerna innan så kan du sedan använda start() för att starta alla fem ljuden samtidigt.
Precis, den första versionen såg ut precis så.
Problemet var att swf-filen blev 228 Mb vilket är ca 224 Mb större än vad Adobe rekomenderar...
Det tar en väldig tid att ladda in swf-en från cd:n och en preloader fungerar väl inte lokalt vad jag förstår?
Så därför är streamingalternativet det som gäller just nu. (om ingen kan komma på någon bättre lösning...)
/Jan
Du behöver inte strömma för att du laddar in ljudet externt.
Det är en flagga i load kommandot där du väljer om det skall vara strömmande eller event ljud.
OK, tack för tips, tyvärr har jag kört fast igen...
Varje kanal i mixern är en "Movie clip" med namn efter instrument; bass, drums, etc. Så här ser koden ut som laddar och startar varje ljud streeamat i separata kanaler och fungerar (men som inte synkar i Safari):
s = new Sound("_root."+_parent._name);
s.loadSound(_parent._name+_root.latnummer+".mp3", true);
Där "latnummer" är en variabel som talar om vilken av 15 låtar som skall laddas in.
Min tanke, utifrån era förslag, är nu att istället ladda in ljuden som event sound globalt, med en funktion som visar inladdningen, och sedan låta varje kanal ta hand om sitt eget ljud typ som koden ovan.
Ska jag skapa ljuden in i respektive movie clip direkt typ
bass = new Sound(bass);
drums = new Sound(drums);
bass.loadSound("bass1.mp3", false);
drums.loadSound("drums1.mp3", false);
Och sedan starta dem infrån typ
"_parent._name".start();
(funkar inte...)
Eller skall jag skapa ljuden globalt typ
bass = new Sound();
drums = new Sound();
bass.loadSound("bass1.mp3", false);
drums.loadSound("drums1.mp3", false);
och sedan anropa ljuden inifrån movie clipen typ
s = new Sound("_root."+_parent._name);
s = _root.+_parent._name;
s.start();
(funkar inte heller...)
Vad gör jag för fel?
Tackar på förhand igen...
/Jan
Ladda in ljuden enligt följande exempel:
bass.snd = new Sound(bass);
drums.snd = new Sound(drums);
bass.snd.loadSound("bass1.mp3", false);
drums.snd.loadSound("drums1.mp3", false);
då kan du starta dem inifrån filmklippet såhär:
snd.start(0, 99999999);
eller:
this.snd.start(0, 99999999);
/Mirandir
Tack för tipsen, nu funkar applikationen ytterligare ett snäpp bättre men...
I Windows fungerar det som det skall i alla webläsare men på Mac så fungerar det fortfarande inte på Safari och IE däremot på Firefox.
Finns det några speciella saker att ta hänsyn till för att det skall fungera lika bra på alla plattformar?
/Jan