Hangfájlok lejátszása HTML5-ben

Az IE9-ben most debütáló HTML5-ben külön tag van hangfájlok lejátszására. Lehetőségünk van egy-vagy több hangfájl megadására, vezérlőgombok (jelenleg play, pause, idő, hangerő) megjelenítésére. A zenék lejátszása javascriptből is vezérelhető. Lássuk a leggyakoribb forgatókönyveket és megoldásaikat:

Zene automatikus lejátszása

Az oldal betöltődése után a böngésző elkezdi letölteni a zenét (esetünkben music.mp3), a lejátszás automatikusan elindul, semmilyen kezelőszerv nem látszik.

    <audio id="player" autoplay src='music.mp3'>
        A böngésződ nem támogatja az audio taget.
        Fallback tartalom, lehet pl. silverlight is.
    </audio>

Zenelejátszó megjelenítése és zene lejátszása

    <audio id="player" controls autoplay src='music.mp3'>
        A böngésződ nem támogatja az audio taget.
        Fallback tartalom, lehet pl. silverlight is.
    </audio>

IE9-ben az alábbi zenelejátszó jelenik meg:

IE9 beépített zenelejátszó kinézete

Az, hogy a lejátszás automatikusan indul-e, attól függ, hogy az audio tag tartalmazza-e az autoplay attribútumot.

Meglévő zenelejátszó vezérlése javascriptből

Ha a player azonosítójú lejátszót javascriptből szeretnénk vezérelni az alábbi lehetőségeink vannak:

Zenefájl beállítása

<a href="#" onclick="document.getElementById('player').src='rammstein.mp3'">rammstein</a>

Hangerő beállítása

A hangerő egy 0 és 1 közötti érték, ahol 1 a maximális, 0 pedig a minimális hangerőt jelenti.

<a href="#" onclick="document.getElementById('player').volume=0.5">hangerő 50%</a>

Lejátszás indítása

<a href="#" onclick="document.getElementById('player').play()">play</a>

Lejátszás megállítása

<a href="#" onclick="document.getElementById('player').pause()">pause</a>

Pozicionálás a hangfájlban

<a href="#" onclick="document.getElementById('player').currentTime=0">vissza az elejére</a>

A STOP funkció elkészítése

Az audio-n nincs értelmezve stop függvény, de ezt megírhatjuk magunk a pause() és a currentTime segítségével:

function stop( player ) {
    player.pause();
    player.currentTime = 0;
}    
<a href="#" onclick="stop( document.getElementById('player') )">play</a> 

Zenelejátszás javascriptből meglévő audio tag nélkül

Lehetőség van zenét lejátszani javascriptből akkor is, ha nem tettünk audio taget az oldalra. Ekkor először példányosítani kell egyet kódból, majd használni. Példaként álljon itt egy saját függvény zene háttérben történő lejátszásához:

function play( musicFilePath ) {
    var player = document.createElement('audio');
    player.src = musicFilePath;
    player.volume = 1;
    player.play();
}


Dávid Zoltán

Dávid Zoltán Mérnök Informatikusként végeztem a BME-n, jelenleg webfejlesztéssel és gépi tanulással foglalkozom.

2010.12.03. 22:10:00 | Permalink | Hozzászólások: 2 | Tárgyszavak: , , ,


  • Előrejelzés készítése Business Intelligence Development Studioval - screencast

    Balássy György (MS RD, ASP.NET MVP, MCTS) Komplex adatbányászati feladatok megoldásához a Microsoft a Business Intelligence Development Studiot (BIDS) ajánlja. A BIDS a Visual Studio 2008 testreszabott változata, melyet az SQL Server 2008-cal együtt telepíthetünk akár a kiszolgálóra, akár munkaállomásra, és amely fel van készítve Analysis, Integration és Reporting Services projektek fejlesztésére. Tovább »
  • LinqDataSource mint ObjectDataSource

    Balássy György (MS RD, ASP.NET MVP, MCTS) A LINQ óriási előnye, hogy a relációs adatainkat szinte észrevétlenül fordítja át objektumok halmazára, emiatt a LinqDataSource inkább rokon az ObjectDataSource vezérlővel, mint az SqlDataSource-szal. Íme egy példa ennek illusztrálására. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások


Dávid Zoltán Dávid Zoltán  (2010.12.07. 14:23:09)

Ha XHTML-t szeretnél írni (ami HTML5-ben nem kötelező), akkor bármilyen értéket adhatsz nekik, csak az attribútumok megléte számít. Tehát autoplay=true és autoplay=false esetén is indul az automatikus lejátszás.

Balássy György (MS RD, ASP.NET MVP, MCTS) Balássy György (MS RD, ASP.NET MVP, MCTS)  (2010.12.05. 0:12:00)

Hát ezt az autoplay dolgot igazán kihagyhatták volna. Ha XHTML-t akarok írni, akkor a controls és az autoplay attribútumoknak mi legyen az értéke?