Thư viện javascript cho HTML5 Audio

Thư viện javascript cho HTML5 Audio

Bạn muốn khi di chuột qua một nút, hình ảnh trên website sẽ xuất hiện âm thanh? Điều mà trước đây chỉ có thể làm được với Flash nay bạn có thể làm với HTML5. Thậm chí là dễ dàng hơn với Buzz - một thư viện javascript nhỏ giúp bạn điều khiển thành phần audio trong HTML5 dễ hơn.



Cách sử dụng
Sử dụng buzz rất đơn giản

// Khai báo đường dẫn tới file âm thanh
// ví dụ bạn có file âm thanh là ntuts.ogg, ntuts.mp3 và ntuts.acc
// đặt trong thư mục /sounds thì bạn khai báo như sau
var mySound = new buzz.sound( "/sounds/ntuts", {
    formats: [ "ogg", "mp3", "acc" ]
});
// Gọi âm thanh lên
mySound.play()
    .fadeIn()
    .loop()
    .bind( "timeupdate", function() {
       var timer = buzz.toTimer( this.getTime() );
       document.getElementById( "timer" ).innerHTML = timer;
    });

Ví dụ đơn giản: để khi di chuột qua #splash sẽ play mySound, bạn làm như sau (ở ví dụ dưới mình sử dụng jQuery để chọn và đưa sự kiện mouseenter vào #splash

$( '#splash' ).mouseenter( function() {
   mySound.play(); 
});

Chúc các bạn thành công.

CÁCH TẠO MP3 PLAYER VỚI HTML5 VÀ CSS3

CÁCH TẠO MP3 PLAYER VỚI HTML5 VÀ CSS3

Bạn muốn tự tạo MP3 Player với phong cách riêng của mình. HTML5 Audio giúp bạn dễ dàng tùy biến giao diện và dễ dàng nhúng vào trang web của bạn.


Với các trình duyệt hỗ trợ HTML5 Audio, bạn có thể sử dụng:

<audio src="audio.mp3" preload="auto" controls autoplay loop>
    <p>Trình duyệt của bạn không hỗ trợ HTML5 Audio</p>
</audio>
Hoặc
<audio preload="auto" controls autoplay loop>
    <source src="audio.mp3" type="audio/mp3">
    <p>Trình duyệt của bạn không hỗ trợ HTML5 Audio</p>
</audio>

Ở ví dụ trên ta đã sử dụng một số thuộc tính của HTML5 Audio:

THUỘC TÍNH MÔ TẢ
autoplay      Tập tin nhạc sẽ tự động chạy khi bắt đầu
controls        Các điều khiển cho audio sẽ hiển thị theo mặc định của trình duyệt
loop        Tập tin nhạc sẽ tự động lặp lại sau khi kết thúc
preload        Tải thông tin của tập tin nhạc 
  • none:         Không load thông tin tập nhạc 
  • auto:          Tự động load thông tin tập tin nhạc 
  • metadata: Load các siêu dữ liệu của tập tin nhạc

src                Nguồn của tập tin nhạc

Tạo MP3 Player
Mình đã giới thiệu chung về HTML5 Audio. Giờ mình sẽ giới thiệu các bạn cách để xây dựng một MP3 Player cho riêng mình.

HTML

Đầu tiên mình sẽ xây dựng một audio với các thành phần sau:

Tập tin nhạc
Loading: tạo hiệu ứng đơn giản khi chạy nhạc
Controls: gồm các điều khiển Play, Pause, Volumn, Seeking

<div class="player">
    <audio id="player__source" src="audio.mp3">
        <p>Trình duyệt của bạn không hỗ trợ HTML5 Audio</p>
    </audio>
    <div class="player__loading"></div>
    <div class="player__control">
        <button id="playPause"></button>
        <span id="currentTime">00:00</span>
        <input id="seek" type="range" min="0" value="0">
        <span id="durationTime">00:00</span>
        <button id="muted"></button>
    </div>
</div>

JAVASCRIPT

HTML5 Audio cung cấp nhiều sự kiện giúp bạn điều khiển và đồng bộ hóa phát lại tập tin nhạc.

Muốn làm việc với HTML5 Audio đầu tiên ta truy vấn đến các thành phần audio mà ta đã xây dựng ở trên.


var player = document.getElementById('player__source'),
    playLoading = document.querySelectorAll('.player__loading span'),
    playPause = document.getElementById('playPause'),
    currentTime = document.getElementById('currentTime'),
    seek = document.getElementById('seek'),
    durationTime = document.getElementById('durationTime'),
    muted = document.getElementById('muted');


Play và Pause

Ta tiến hành kiểm tra nếu nhạc đang chạy sẽ nút Pause sẽ hiển thị và ngược lại.

playPause.addEventListener('click', playPauseMusic, false);

function playPauseMusic() {
    if (player.paused) {
        player.play();
        // Kiểm tra thời gian hiện tại của bài nhạc
        timeInterval = setInterval(timeUpdateMusic, 100);
        // Thay đổi giá trị của seek
        seek.addEventListener('change', seekMusic, false);
    } else {
        player.pause();
    }
}

function timeUpdateMusic() {
    // Thời gian toàn bộ của bài nhạc
    durationTime.innerHTML = player.duration;
    // Thời gian hiện tại của bài nhạc
    currentTime.innerHTML = player.currentTime;
    seek.max = player.duration;
    seek.value = player.currentTime;
}

function seekMusic() {
    player.currentTime = seek.value;
}

Volumn - Âm Thanh

Tương tự như Play và Pause, ta cũng kiểm tra volumn của nhạc đang tắt hay bật. Ở đây mình xây dựng volumn chỉ có hai chức năng mở âm thanh và tắt âm thanh.

muted.addEventListener('click', mutedMusic, false);

function mutedMusic() {
    if (player.muted) {
        // Mở âm thanh
        player.muted = false;
    } else {
        // Tắt âm thanh
        player.muted = true;
    }
}

CSS3

Với CSS3 bạn có thể sử dụng CSS3 Animation và Transtion để làm cho Player của bạn sinh động hơn. Mình sẽ hướng dẫn chi tiết hơn ở những bài viết sau. Ở ví dụ dưới đây mình sử dụng icon font để làm các nút như play và volumn.

Tạo playlist hay danh sách phát mp3,video cho blog, web bằng HTML5

Tạo playlist hay danh sách phát mp3,video cho blog, web bằng HTML5

Hôm nay xin hướng dẫn các bạn cách tạo playlist cho tap audio trong HTML5
Các bạn làm như sau nhé : 

Hình chỉ mang tính chất minh họa

1. Sao chép và dán mã dưới đây vào ngay sau thẻ <head> của web/ blog: 

<!--HTML5 Video playlist 1 | vivublogspot.blogspot.com-->
<script src='http://code.jquery.com/jquery-1.8.3.js' type='text/javascript'/>
<!--Tệp tin dự bị: <script src='https://sites.google.com/site/ntdongzoom/home/file-audio/html5-video-playlist-jquery.js' type='text/javascript'/>-->
<style type='text/css'>
#playlist {
display:table;
}
#playlist li{
cursor:pointer;
padding:8px;
}
#playlist li:hover{
color:blue;
}
#videoarea {
float:left;
width:620px;
height:350px;
margin:5px;
border:1px solid silver;
}
</style>
<!--End code-->

Thay đổi giá trị màu đỏ (kích thước) cho thích hợp với blog của bạn. 

2. Sao chép và dán mã dưới đây vào trước thẻ </head> của web/ blog 

<!--HTML5 video playlist 2 | vivublogspot.blogspot.com-->
<script type='text/javascript'>//<![CDATA[
$(window).load(function(){
$(function() {
$("#playlist li").on("click", function() {
$("#videoarea").attr({
"src": $(this).attr("movieurl"),
"poster": "",
"autoplay": "autoplay"
})
})
$("#videoarea").attr({
"src": $("#playlist li").eq(0).attr("movieurl"),
"poster": $("#playlist li").eq(0).attr("moviesposter")
})
})
});//]]>
</script>
<!--End code-->

3. Nhúng mã dưới đây vào widget, trang đăng, bài đăng... để phát nhạc, video

<video autoplay="True" id="videoarea" controls="controls" poster="" src=""></video>
<ul id="playlist">
<li movieurl="https://sites.google.com/site/ntdongzoom/home/file-audio/03-westlife-something_right.mp3 "><b> Something right - weblife</b></li>
<li movieurl="http://grochtdreis.de/fuer-jsfiddle/video/sintel_trailer-480.mp4"><b>Hoạt hình </b></li>
<li movieurl="http://html5example.net/static/video/html5_Video_VP8.webm"><b>Hoạt hình 1</b></li>
<li movieurl="http://www.ioncannon.net/examples/vp8-webm/big_buck_bunny_480p.webm"><b>Hoạt hình 2</b></li>
</ul>

Chú thích :
Bạn thay thế các phần tô màu đỏ cho phù hợp với mình nhé.
  • Màu True : là tự động phát
  • Màu đỏ : là đường dẫn (URL) tệp tin nhạc hoặc video. 
  • Màu xanh  là tiêu đề của video/ mp3

Các hosting miển phí bạn có thể tải file lên như: Videobam, Clip.vn; tải MP3 lên Kiwi6.com
Chúc các bạn thành công !

Dùng thẻ

Dùng thẻ <audio> HTML5 để chèn nhạc vào website

Xưa nay để chèn nhạc vào blog ta phải dùng một plugin của bên thứ 3 với sự hỗ trợ của flash tuy nhiên khi HTML5 ra đời đã giúp cho các code, webmaster và những người quản trị nội dung nhẹ gánh hơn rất nhiều. Chèn nhạc trực tiếp vào trang web chỉ với một thẻ <audio>



Thử liền nhé cú pháp đơn giản

Cú pháp của nó rất đơn giản, bạn chỉ cần chèn thẻ <audio> với vài thông số là xong. Cơ bản nhất bạn chỉ cần chèn:

<audio src=audio.mp3" controls />

Thuộc tính controls giúp hiển thị một thanh trượt điều khiển trên trình duyệt, thanh trượt này sẽ khác nhau trên các trình duyệt khác nhau nhé.

Ngoài ra các bạn cũng cần hiểu thêm các thuộc tính sau : 

scr

Thuộc tính chỉ định file âm thanh được phát, rất quen thuộc mọi người chắc gặp cũng nhiều nhất là khi chèn ảnh vào bài viết chẳng hạn thẻ <img> cũng có thuộc tính này.

controls

Thuộc tính này giúp hiển thị một thanh trượt điều khiển.

autoplay

Thuộc tính này sẽ giúp bài nhạc tự động play ngay khi tải trang. 

loop

Vòng lặp. Khi chơi hết bản nhạc thì trình duyệt sẽ tự động phát lại bản nhạc đó từ đầu hết lần này đến lần khác. Đó là một infinity loop – vòng lặp vô cùng.

preload {  auto | metadata | none  }

Thuộc tính preload này quy định việc có nên tải về file nhạc hay không. Nó chỉ được FF, Chrome và Safari hỗ trợ.

auto =  files sẽ tự động được tải.
metadata = chỉ tải khi file metadata của trang load (chưa hiểu lắm!).
none = file âm thanh chỉ được tải về khi đọc giả đồng ý.
Xem ví dụ để hiểu rõ hơn về những thuộc tính này.

<audio src="audio.mp3" controls preload="none" />

Vì HTML5 vẫn còn mới nên có một số trình duyệt vẫn chưa hỗ trợ vậy bạn cần thông báo cho họ biết điều này bằng cách thêm đoạn test

<audio src="audio.mp3" controls >
   <p>Trình duyệt của bạn không hỗ trợ audio vui lòng<a href="audio.mp3">download</a> file audio về máy nếu muốn nghe.</p>
</audio>

Trình duyệt sẽ tự động bỏ qua thẻ audio và đọc toàn bộ đoạn text nằm giữa thẻ <p>. Đoạn text này phải nằm giữa thẻ <p> và thẻ <p> phải nằm giữa thẻ <audio>

Nhưng như vậy vẫn chưa phải là giải pháp. Giải pháp là file âm nhạc phải được chơi trên tất cả các trình duyệt. Và đây là đoạn code tuyệt vời đó.

<audio src="audio.mp3" controls>
   <object data="mediaplayer.swf?audio=audio.mp3">
          <param name="movie" value="mediaplayer.swf?audio=audio.mp3">
        <p>trình duyệt của bạn không hỗ trợ audio hoặc flash vui lòng <a href="audio.mp3">download</a> file mp3 về máy nếu muốn nghe.</p>
    </object>
</audio>

Thẻ <audio> của HTML5 còn cho phép ta chèn vào giữa nó một object và như vậy ta thoải mái nhạc bằng cách thêm plugin vào. Trong trường hợp plugin không hoạt động thì vẫn còn dòng text giữa thẻ <p>

Và đây là full :

Tuy nhiên hiện có rất nhiều loại thiết bị cũng như nhiều loại trình duyệt khác nhau, từ để bàn tới nên đây là full code cho tất cả

<audio controls>
   <source src="audio.ogg">
   <source src="audio.mp3">
   <object data="mediaplayer.swf?audio=audio.mp3">
          <param name="movie" value="mediaplayer.swf?audio=audio.mp3">
        <p>Your browser does not support native audio or Flash. To listen, please <a href="audio.mp3">download</a> the mp3 file to your computer.</p>
    </object>
</audio>

Đoạn code này hoạt động như sau: Trình duyệt hỗ trợ HTML5 sẽ đọc thấy thẻ <audio> nó biết rằng phải chơi một file nhạc, nhưng là files nào? Nó sẽ bắt đầu dò và sẽ phát file đầu tiên mà nó hiểu được, nếu nó chẳng hiểu file nào hết thì nó bắt đầu đọc tới <object> và phát nhạc dựa vào plugin. Nếu không hiểu nữa thì nó đành hiện ra dòng text giữa thẻ <p>

Chúc các bạn thành công !