Začínáme s Flash MX 2004 – 21. díl – MP3 přehrávač, první část

Zatím jsme se v našem seriálu nezmínili o možnostech práce se zvukem. Dnešním dílem se začneme podrobněji věnovat funkcím, které nám Flash při práci se zvuky nabízí.

Zvuky ve Flashi

Coby to bylo za animace, kdybychom do nich nemohli začlenit hudební doprovod. Ve Flashi máme hned několik možností, jak pracovat se zvukem. První možností je přímý import zvuku do knihovny symbolů (pomocí File – Import – Import to Library). Z knihovny pak můžeme zvuky libovolně přetahovat do jednotlivých snímků scény a na panelu vlastností příslušného snímku jim měníme zvolené parametry.

My se ale zaměříme na další možnost, kterou je externí načítání a přehrávání zvuků ve formátu mp3. Jiný, než mp3 formát nám Flash neumožňuje externě načítat, ale zato zde máme možnost přehrávání již částečně staženého souboru (streaming).

Jak na mp3 přehrávač?

Jak jsem v titulku uvedl, budeme se dnes snažit vytvořit velmi jednoduchý mp3 přehrávač se základním ovládáním. Vytvoříme si MC, do kterého umístíme tlačítka pro přecházení mezi jednotlivými skladbami, tlačítko pro pauzu, zastavení a opětovné spuštění hudby. Dále do „přehrávače“ vložíme jednoduchý preloader, který nás bude informovat o stavu načtení aktuálního souboru.

K těmto objektům připíšeme několik řádků skriptu a máme první přehrávač hotov!

Objekty přehrávače

Otevřeme si nový dokument a vytvoříme si nový MC, který pojmenujeme „přehrávač“.

Klepněte pro větší obrázek

Abychom se nezdržovali s tvorbou tlačítek, využijeme již připravená, která najdeme v okně „Buttons“ (Windows – Other Panels – Common Libraries – Buttons).

Klepněte pro větší obrázek

Můžeme použít „gelová“ tlačítka ze skupiny „Playback“.

Klepněte pro větší obrázek

Vybereme tlačítka a umístíme je na plochu MC „přehrávač“.

Klepněte pro větší obrázek

Nad tlačítky nakreslíme obdélník, který bude sloužit jako indikátor stavu načtení jednotlivých souborů.

Klepněte pro větší obrázek

Klikneme pravým tlačítkem myši na výplň obdélníku a převedeme jej na MC, který pojmenujeme „preloadbar“. Nesmíme zapomenout umístit registrační bod (střed objektu) do levého horního rohu.

Klepněte pro větší obrázek

Klepněte pro větší obrázek

Bod je v levé části proto, že budeme měnit velikost tohoto objektu podle načtených procent a chceme, aby se nám objekt roztahoval směrem doprava. Objekt nezapomeneme pojmenovat na panelu vlastností - „preloadbar“.

Klepněte pro větší obrázek

Šipkou (Selection Tool) vybereme celý obdélník i s okrajem a převedeme jej na MC, který nazveme „preloadstatus“. Opět nezapomeneme na panelu vlastností objekt pojmenovat „preloadstatus“.

Klepněte pro větší obrázek

Klepněte pro větší obrázek

Tímto máme objekty hotové a můžeme se věnovat AS. Otevřeme si panel akcí prvního snímku MC „přehrávač“ a vložíme do něj následující kód:

//pole skladeb
skladby = new Array();
skladby[0] = "01.mp3";
skladby[1] = "02.mp3";
skladba = 0;
//nastavení kolik sekund se musí načíst do bufferu, aby se začal soubor přehrávat
_soundbuftime = 10;

Pro jednoduchost si vytvoříme pole skladeb, které obsahuje cesty k mp3 souborům, toto pole může být jakkoliv dlouhé, podle počtu skladeb, které chceme přehrávat. Pokračujeme tímto kódem:

//funkce pro přehrání skladby
startMusic = function (music) {
  song = new Sound();
  song.loadSound(music, true);
  pozice = 0;
  paused = false;
};

Uvedená funkce provede načtení požadovaného souboru. Všimneme si parametru „true“ v příkazu „loadSound“. Ten určuje, že se bude soubor přehrávat ihned po načtení několika sekund, které jsme nastavili pomocí parametru „_soundbuftime“. Pokud tento parametr neurčíme, bude se defaultně začínat od 5 sekund načteného souboru.

Dále pokračujeme několika ovládacími funkcemi:

//funkce pro pauzu přehrávání
pauseMusic = function () {
  if (paused) {
    song.start(pozice, 1);
    paused = false;
  } else {
    pozice = song.position;
    pozice = pozice/1000;
    song.stop();
    paused = true;
  }
};
//funkce pro zastavení přehrávání
stopMusic = function () {
  pozice = 0;
  song.stop();
};
//funkce pro pokračování v přehrávání
playMusic = function () {
  song.start(pozice, 1);
  paused = false;
};
// přechod na další skladbu
nextMusic = function () {
  skladba++;
  if (skladba>=skladby.length) {
    skladba = 0;
  }
  startMusic(skladby[skladba]);
};
//skok na předchozí skladbu
befMusic = function () {
  skladba--;
  if (skladba<=-1) {
    skladba = skladby.length-1;
  }
  startMusic(skladby[skladba]);
};
//začneme přehrávat první skladbu
startMusic(skladby[skladba]);

Po sepsání kódu přiřadíme ovládacím tlačítkům příslušné funkce:

Klepněte pro větší obrázek

Posledním objektem, kterému přiřadíme akci je „preloadstatus“. Klikneme tedy na něj, otevřeme panel akcí a vepíšeme následující řádky:

onClipEvent (load) {
  preloadbar._xscale = 0;
  this._visible = false;
}
onClipEvent (enterFrame) {
  if (this._parent.song != undefined) {
    celkem = this._parent.song.getBytesTotal();
    nahrano = this._parent.song.getBytesLoaded();
    this._visible = true;
    procNahrano = nahrano/(celkem/100);
    preloadbar._xscale = procNahrano;
    if (celkem == nahrano) {
      this._visible = false;
      preloadbar._xscale = 0;
    } else {
      this._visible = true;
    }
  }
}

Zde testujeme existenci objektu „song“ a následně vyhodnocujeme stav jeho načtení, podle kterého měníme velikost obdélníku, objektu „preloadbar“.

Po dopsání uvedeného skriptu máme hotovo, stačí jen otevřít knihovnu symbolů, přetáhnout objekt „přehrávač“ na scénu a můžeme testovat.

Samozřejmě, že se jedná o velmi jednoduchý příklad, který by si zasloužil další vylepšení. Proto se v příštím díle zaměříme na zpracování a zobrazení informací, které nám nabízejí ID3 tagy mp3 skladeb.

Náhled dnešní ukázky je k dispozici zde.

Zdrojový soubor ukázka ke stažení zde.

Diskuze (10) Další článek: Ke stažení: nové verze Skype a Nera

Témata článku: Software, Windows, Programování, Flash, MP3, Playback, Díl, Jednoduchá pozice, Jednotlivý snímek, První část, První snímek, Přehrávač, Dopsání, První parametr, Levý panel, Uvedená funkce, Stá pozice, Song


Určitě si přečtěte

Na měsíc jsem opustil Google a potupně se zase vrátil zpět (komentář)

Na měsíc jsem opustil Google a potupně se zase vrátil zpět (komentář)

** Zkusil jsem se zbavit závislosti na vyhledávači od Googlu ** Jako alternativy posloužily Bing, Seznam a DuckDuckGo ** Mají své silné stránky, ale i nepřekonatelná negativa

Lukáš Václavík | 70

Jak se žije s telefonem bez Googlu: Čerstvé zkušenosti s telefony Honor a Huawei

Jak se žije s telefonem bez Googlu: Čerstvé zkušenosti s telefony Honor a Huawei

** Honor u nás přichází s prvním telefonem bez Google Mobile Services ** Současný stav je lepší než na začátku, ideální ale není ** Zkusili jsme i hack s ručním přidáním služeb Googlu

Tomáš Holčík | 162

Apple vychrlil novinky: Nové operační systémy a příprava na vlastní procesory

Apple vychrlil novinky: Nové operační systémy a příprava na vlastní procesory

** Apple dnes představuje novinky ** Tradiční keynote v rámci konference WWDC probíhá jen online ** Nové operační systémy, ale i něco navíc

David Polesný | 109

Apple má šanci definitivně se uzamknout. macOS byl na jeho poměry až příliš otevřený

Apple má šanci definitivně se uzamknout. macOS byl na jeho poměry až příliš otevřený

** Apple, vývojáře i uživatele rozhodně nečekají dva roky prázdnin ** macOS se může uzavřít podobně jako iOS a iPadOS ** Přechod na Arm znamená stopku pro hackintoshe

Lukáš Václavík | 105

Epic chce rozbít monopol Play Storu a App Storu. Nastražil trik s hrou Fortnite a žaluje Google i Apple

Epic chce rozbít monopol Play Storu a App Storu. Nastražil trik s hrou Fortnite a žaluje Google i Apple

** Apple a Google odstranili z obchodů s aplikacemi hru Fortnite ** Její vývojáři nejprve přichystali parodické video ** V žalobách viní obě firmy z monopolního chování

Karel Kilián | 134

Jak uložit dokument z Wordu, aby vydržel celé roky? Je to těžší než cesta na Mars

Jak uložit dokument z Wordu, aby vydržel celé roky? Je to těžší než cesta na Mars

** Jak uložit soubory, aby vydržely vnoučatům? ** A co kdyby měly přečkat celá staletí? ** Teď se o to pokouší GitHub a je to oříšek i pro lingvisty

Jakub Čížek | 119


Aktuální číslo časopisu Computer

Megatest mobilů do 8 000 Kč

Test bezdrátových headsetů

Linux i pro začátečníky

Jak surfovat anonymně