Hôm nay mình xin mở 1 topic hướng dẫn các bạn chơi nhạc trong Java (bạn nào biết rồi chỉ giáo thêm), định dạng MP3. Mặc định ngôn ngữ Java sẽ chơi được các loại nhạc *.wav, *.au, *.midi (cái cuối không chắc nha[Thủ thuật] Phát nhạc MP3 trong Java  10). Và bản thân ngôn ngữ Java cũng chưa chơi được nhạc MP3 vì thế bạn cần có 1 API "nhỏ nhỏ" tên là JLayer (cái này mã nguồn mở).

(1) Các bạn vào link

Code: http://www.javazoom.net/javalayer/sources.html để tải bản JLayer mới nhất về (1.0.1). zip hay là tar.gz không phải vấn đề, chung quy là cứ down về rồi giải nén ra.

Tiếp theo là add cái này vào phần quản lí các Library của Netbeans cho tiện dùng, nếu không muốn làm thì hãy bỏ qua (2) và sang (3).

(2) - Sau khi giải nén rồi thì làm khâu xử lí "bé bé" trước khi đem add vào Netbeans:





Nén thư mục doc thành doc.zip
Nén thư mục src thành src.zip

- Bây giờ chúng ta sẽ add nó vào phần quản lí thư viện của Netbeans.
B1: Vào menu Tools \ Libraries
B2: chọn New Libraries... Đặt tên cho nó là JLayer (hay MP3, Music,... gì thì tuỳ)
B3: Ở tab classpath, chọn Add Jar/Folder..., duyệt tới file jl1.0.1.jar vừa tải về.
B4 và B5 là tuỳ chọn, nhưng khuyến nghị nên làm để có thể xem được code và Javadoc
B4: Ở tab Sources chọn Add Jar/Folder..., duyệt tới file src.zip vừa tạo.
B5: Ở tab Javadoc, chọn Add ZIP/Folder..., duyệt tới file doc.zip vừa tạo.
B6: OK

(3) Áp dụng vào 1 ví dụ
- Khởi tạo 1 Project kiểu Java Application, tên là Demo chẳng hạn.
- Ở bên tab Projects, các bạn kích chuột phải vào mục Libraries trong
cái Project Demo của mình, chọn Add Library... (nếu bỏ bước 2 thì Add
Jar/Folder và duyệt tới jl1.0.1.jar)
[Thủ thuật] Phát nhạc MP3 trong Java  Unlednlq
- Chọn Library mình vừa tạo ra, nhấn Add.
[Thủ thuật] Phát nhạc MP3 trong Java  Unledooc
- Công việc chuẩn bị đã xong, giờ là code tham khảo cho các bạn ở đây mình dùng bản nhạc có tên demo.mp3

Code:

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import javazoom.jl.player.Player;

class MP3 {
    private Player player;
    private String filename;
   
    public MP3(String filename) {
        this.filename = filename;
    }
   
    public void stop() {
        if (player != null)
            player.close();
    }
   
    public void play() {
        try {
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filename));
            player = new Player(bis);
        } catch (Exception ex) {
            System.out.println(ex);
        }
       
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    player.play();
                } catch (Exception ex) {
                    System.out.println(ex);
                }
            }
        }).start();
    }
}

public class Demo {
    public static void main(String[] args) {
        MP3 mp3 = new MP3 ("DEMO.MP3");
        mp3.play();
        //Lam gi do trong thoi gian phat nhac
    }
}

Trong đoạn code trên, chúng ta có sử dụng lớp Player trong thư viện JLayer.
Phương thức khởi tạo:

Code:

Player player = new Player(BufferedInputStream bis);

Phát nhạc:

Code:

 player.play();

Dừng nhạc:

Code:

player.close();


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

Ngoài ra JLayer còn có decoder và converter, mình sẽ post sau.

https://www.youtube.com/watch?v=IiqR0VzDilM&feature=player_embedded
https://www.youtube.com/watch?v=t6TpB11zhEs&feature=player_embedded


Convert
Phần
convert này thực chất rất đơn giản. Nó giúp các bạn Chuyển 1 file nhạc
MPEG thành 1 file WAV, chúng ta sẽ dùng lớp
javazoom.jl.converter.Converter;

[code] Converter convert = new Converter();
convert.convert(, ); [code] Mọi chuyện chỉ đơn giản vậy thôi, chúc các bạn "cồng thanh"