Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Chương trình nghe nhạc, xem phim, xem hình dựa trên WMP

Lâu nay tôi chú tâm làm java nhiều nên đã “mếch lòng” với 1 số bạn của thread C# này, đặc biệt là các bạn muốn làm 1 chương trình nghe nhạc. Lúc đầu mới học lập trình tôi cũng đã từng rất thích vấn đề này. Thay cho lời xin lỗi, tôi sẽ viết một bài hướng dẫn các bạn cách làm 1 chương trình nghe nhạc dựa trên Windows Media Player với 1 số các chức năng như sau:

1. Lấy được các playlist của hệ thống chung với chương trình WMP của Windows

2. Cho phép thêm, xóa,.. playlist

3. Thêm/xóa media theo files, thưc mục vào 1 playlist

4. Xem thông tin ID3 tag của media.

5. Lấy lyric của media hiể thị

6. …

Media ở đây là mọi thứ nghe/nhìn/… như nhạc, hình video, audio, …

Về giao diện thì hơi xấu 1 tý. Các bạn nên customize lại cho đẹp. Sau khi xong, giao diện chính như sau:

clip_image001

Khi chuyển media, nếu media của bạn có gắn lyric(tạm gọi là lời nhạc) thì chương trình tự động load lời nhạc đó lên hiển thị, dạng như sau:

clip_image002

clip_image003

Nhấn chuột phải lên All Playlists sẽ cho chúng ta menu thêm 1 playlist mới vào hệ thống WMP

clip_image004

Khi nhấn phải chuột lên 1 playlist sẽ cho menu

clip_image005

Cho phép thêm 1 folder các bài nhạc vào playlist; thêm 1 tập các files lựa chọn vào playlist, clear playlist và remove playlay khỏi hệ thống.

Khi bạn double-click vào 1 playlist, danh sách các bài nhạc sẽ được load vào wmp và chơi bài đầu tiên của playlist.

clip_image006

Nhấn phải chuột lên 1 bài nhạc trong danh sách ta có 1 menu

clip_image007

Cho phép thêm files, folder,… vào playlist hiện tại.

Đặc biệt khi bạn chọn mục Media Informations, một cửa sổ các thuộc tính của media hiện tại hiện ra như sau:

clip_image008

clip_image009

Nếu bài nhạc/media chưa có lyric, bạn có thể thêm vào nhấn nút cập nhật. Chương trình sẽ thêm vào bài nhạc. Việc thêm các thuôc tính ID3 khác cũng rất dễ dàng.

Đó là giới thiệu tý về chương trình. Còn bây giờ là code nhỉ!

Code để load tất cả các playlist hiện có của WMP

using WMPLib;

IWMPPlaylistCollection col = player.playlistCollection;

IWMPPlaylistArray arr = col.getAll();

for (int i = 0; i < arr.count; i++)

{

String playlistName=arr.Item(i).name;

//xử lý nó

}

Thêm 1 playlist mới

IWMPPlaylist pl = player.playlistCollection.newPlaylist(plname);

Xóa 1 playlist

IWMPPlaylist selPL = //??playlist cần xóa

IWMPPlaylistCollection col = player.playlistCollection;//player là WMP control

col.remove(selPL);

Thêm 1 bài hát vào playlist:

IWMPPlaylist currentPlaylist=//??playlist đang chơi

IWMPMedia media = player.newMedia(file path của bạn);

currentPlaylist.appendItem(media);

Trong bài có tham khảo đến Lyric fetching của Phillip Piper. Bạn có thể viết thêm để lấy lyric từ các lyric server database trên mạng như http://lyricwiki.org hay http://webservices.lyrdb.com,… (phần này tôi đã trích ra trong dự án lyric fetching J nhưng chưa đưa vào chương trình do bận quá)

Ngoài ra trong project còn dùng thư viện taglib-sharp-2.0.4.0 của Brian Nickel brian.nickel@gmail.com để lấy Lyric (metadata) của các file media (phần này cực hay – bạn tha hồ bơi lội torng đó L)

Code “trọn gói” của nó bạn có thể download ở đây.

Bộ cài đặt dùng thử download ở đây.

Bạn nào viết thêm có gì hay thì up bài lên cho các bạn khác tham khảo.

Chú ý: Bộ VS ở đây tôi sử dụng là VS2008, NetFX là 3.5. Bạn có thể dùng VS2010 với NetFX 4.0 nhưng nếu bạn dùng NetFX 2.0 sẽ bị lỗi.

10 Responses to “Chương trình nghe nhạc, xem phim, xem hình dựa trên WMP”

  1. haolongvt said

    Hay quá cảm ơn thầy Hải nhiều.

  2. Nam said

    Chao ban, minh cung dang thu lam 1 chuong trinh nghe nhac don gian, minh dung 1 listbox de chua playlist, minh ko biet lam the nao de bai hat tu dong chuyen khi het. rat cam on ban.thanks

  3. Toàn said

    Thầy ơi….link demo và download bị lỗi rùi….thầy fix lại giúp ạ. Cám ơn thầy nhiều.

  4. Võ Văn Hải said

    đã fix. hôm trước tạo thư mục không để ý là không share. sorry.

  5. trung said

    Dựa trên player khác đc không thầy?

  6. AT said

    Dow ve duoc nhung bi die roi thay oi. thay co the xem lai duoc ko thay.hic

  7. Võ Văn Hải said

    vẫn OK mà em. em không được nhấn chuột phải, Save As mà click cho nó đi đến file rồi save.

  8. le hoang viet said

    thầy ơi chương trình nghe nhạc bằng C# em lam rồi.em xin chi em làm một chương nghe nhạc bằng java# trong bộ visual stdio 2005 ở phần java# windown application cua visual

  9. ibequang said

    Em có làm chương trình nghe nhạc bằng thư viện winmm.dll. Nhưng rõ ràng là nó không chuyên nghiệp như chương trình của Thầy. Chương trình của Thầy có thể chơi 1 đoạn nhạc tại 1 thời gian chỉ định. VD: em có 1 bài hát mp3 dài 5 phút, nhưng em chỉ muốn chơi từ phút thứ 2 tới phút thứ 3 thì tự động stop. Việc này rất quan trọng với em. Em cám ơn thầy.

  10. Có link dow khác không hả thầy, em dow mãi ko dc

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: