Mp3 bằng VB

  • Thread starter kimthuhuong
  • Ngày gửi
K

kimthuhuong

Guest
Em đang làm một chương trình hát nhạc MP3 bằng VB(bằng cách dùng Window Media Player), nhưng không biết đoạn code dùng cho nó , giúp em với anh chị hỡi hic :thank :thank :thank
 
Khóa học Quản trị dòng tiền
nipvnn

nipvnn

www.mintoday.com
23/10/03
362
3
18
30
Ôi trời ...... hic :chuoi

muốn làm được phải có project và compnent đồng thời phải biết liên quan đến thuộc tính hành vi nó có thể tác động đến , cần códe thì có ther dùng Microsoft Multimedia Control đơn giản hơn nhiều hizzzz
 
H

htqtn

Guest
21/8/05
32
0
0
44
Thais Nguyeen
Chúc bạn thành công và gặp thật nhiều may .
 
Sửa lần cuối:
H

htqtn

Guest
21/8/05
32
0
0
44
Thais Nguyeen
file âm thanh

để thiết kế được chương trình duyệt file âm thanh
bằng Visual Basic thì cũng rễ mà ở MediaPlayer của Windows từ version 6.x trở đi có thể player được rất nhiều dạng thức tập tin Multimedia khác nhau như: .avi, .asf, .asx, .rmi, .wav ; .ra, .ram, .rm, .rmm ; .mpg, .mpeg, .m1v, .mp2, .mpa, .mpe ; .mid, .rmi ; .qt, .aif, .aifc, .aiff, .mov ; .au, .snd ... Chất lượng cũng được cải thiện rất rõ rệt so với các phiên bản trước.

Nếu bạn đang sử dụng Windows 98 thì MediaPlayer đã sẵn sàng, nếu dùng Windows 95, 97 bạn buộc phải cài đặt bổ sung để lên đời MediaPlayer của mình. Bạn có thể tìm bộ nâng cấp trên các CDROM phần mềm hay nằm chung trong bộ Internet Explorer 4.01 SP2.

Các file multimedia hiện này tràn ngập trên Internet, CDROM, rất nhiều. Đặc biệt là MP3 & Midi, 2 loại file này rất thịnh hành và đang được ưa chuộng.

Cái gì nhiều cũng gây nên ý tưởng (nói dúng hơn là sinh tật). Mặc dù chỉ cần double click lên file Mp3 hay Midi trong một trình quản lý file là có thể Play được một cách dễ dàng nhờ MediaPlayer của Windows nhưng cái gì của riêng mình mới khoái.

Chính vì vậy trong bài viết này mình xin mạn phép hướng dẫn các bạn tự thiết kế một MediaPlayer rất tiện dụng và để dành làm của riêng. Tuy nhiên nói của riêng không phải là tự làm hết mà chúng ta phải dùng một bản sao của MediaPlayer trong chương trình.

Khái quát về chương trình

Chúng ta sẽ thiết kế chưong trình có giao diện như sau:



Đầu tiên người dùngười chọn ổ đĩa, thư mục có chứa các file Multimedia (thí dụ là file Midi). Kế đến nhấn nút Play hoặc double click trên tên file cần phát để nghe nhạc.

Ngoài ra còn có các nút Help, Author, Exit

Phía dưới là một MediaPlayer được nhúng vào chương trình, có thể điều chỉnh các chức năng như một chương trình riêng biệt (bạn có thể right click để mở menu tắt quen thuộc như khi dùng MediaPlayer), ở cuối của cửa sổ có dòng thông báo tên file & đường dẫn đang Play.


Các xác lập trong hộp thoại Options của MediaPlayer

Phía dưới của hộp chọn thư mục có một Text box dùng để lọc file. Các loại file này ngăn cách bởi dấu chấm phảy ";". Thí du như bạn muốn lọc các file MP3 & MIDI thì gõ vào: *.mp3;*.mid

Cũng lưu ý thêm là: nếu như trong hộp liệt kê tên file không có file nào, thì nút Play bị vô hiệu hoá (Enabled=False). Chỉ khi nào có file nút Play mới có tác dụng.

Thiết kế giao diện

Bạn hãy khởi động Visual Basic và bắt tay vào việc tạo dáng cho ứng dụng của mình. Cách bố trí các Control trên form tùy theo ý mỗi người, riêng tôi, tôi trình bày như sau:



Các thuộc tính & Caption của các Control trong chương trình:

FORM

Form1.caption = "MediaPlayer - Browser"

Form1.BorderStyle = 1-Fixed Single

Form1.Minbutton=True

TEXTBOX/LABELBOX

Text1.text="*.mid;*.mp3"

Label1.caption=""

COMMAND BUTTON

cmdPlay.caption="&Play"

cmdPlay.enabled=False

cmdHelp.caption="&Help"

cmdAuthor.caption="&Author"

cmdExit.caption="&Exit"

Trên thanh Toolbox của Visual Basic không có đối tượng MediaPlayer. Bạn phải dùng một Custom Control để thêm đối tượng đó vào.

Nhấn CTRL - T. Trong hộp thoại Components chọn Windows MediaPlayer (thường ở cuối danh sách), Click nút OK



Đối tượng MediaPlayer sẽ được thêm vào Toolbox, việc còn lại, chỉ cần vẽ nó lên form, đặt ở vị trí thích hợp (nó có tên mặc nhiên là MediaPlayer1)

Viết Code

Đầu tiên bạn cần cho bộ 3 control: Drive1, Dir1, File1 hoạt động. Hãy gõ đoạn Code sau đây để cho chúng "hiểu nhau"

Private Sub Dir1_Change()

File1.Path = Dir1.Path

If File1.ListCount = 0 Then
'Kiểm tra xem có file nào trong listbox File1 chưa

cmdPlay.Enabled = False
'Nếu chưa có thì vô hiệu nút Play

Else

cmdPlay.Enabled = True
'Nếu có rồi thì cho hiệu lực nút Play

End If

End Sub

Private Sub Drive1_Change()

Dir1.Path = Drive1.Drive

End Sub

Double click lên nút Play và viết

Private Sub Command1_Click()

MediaPlayer1.filename = Dir1.Path & "\" _
& File1.List(File1.ListIndex)

Label1.Caption = MediaPlayer1.filename

End Sub

Nếu thuộc tính AutoStart của MediaPlayer được gán bằng True. MediaPlayer sẽ tự động Play nếu bạn truyền cho thuộc tính FileName của nó một chuỗi là đường dẫn đến file cần Play. Khi thuộc tính FileName là rỗng, nó sẽ ngừng.

ở đoạn Code trên tôi đã ghép nối các thuộc tính của Drive1, Dir1 & File1 để chỉ ra file cần Play. Đoạn code sẽ gặp lỗi khi các file cần Play nằm ngoài thư mục gốc, bạn hãy tự hoàn chỉnh lấy bằng hàm IIF() hay câu lệnh IF

Dòng thứ 2 dùng để hiển thị đường dẫn file đang Play trong Labelbox ở cuối form.

Nếu muốn khi người dùng Double Click lên tên file trong danh sách file thì MediaPlayer sẽ Play file đó, bạn chỉ cần làm như sau:

Private Sub File1_DblClick()

cmdPlay_Click

End Sub

Để khả năng lọc (Pattern) của File1 hoạt động theo nội dung trong Textbox (Text1). Bạn cần gán các chuỗi trong Textbox do người dùng gõ vào mỗi khi có sự thay đổi (thuộc tính Change của Textbox).

Private Sub Text1_Change()

File1.Pattern = Trim(Text1)

End Sub

Đồng thời lúc chương trình khởi động bạn cũng phải gán nội dung trong Textbox cho thuộc tính Pattern của File1

Private Sub Form_Load()

Text1_Change

End Sub

MediaPlayer còn có một thuộc tính tên là PlayCount - Số lần phát lại một file nhạc, bạn hãy gán cho nó một số thích hợp trong khi thiết kế chương trình.

Khả năng của MediaPlayer còn tùy thuộc vào MediaPlayer đang sử dụng trong Windows của bạn.

Vậy là xong, một chương trình duỵệt file âm thanh, thật là quá đơn giản phải không bạn :)

Thay lời kết

Bây giờ bạn có thể dịch ra file exe, đem tặng cho bạn bè "làm kỷ niệm". Nhớ chép thêm các file cần thiết cho chương trình nhé. MSDXM.OCX là file chứa Custom Control MediaPlayer đã sử dụng trong chương trình. Hãy nén lại cho chúng thật mi nhon trước khi chép ra đĩa mềm hay gởi kèm theo E-mail.

Trên đây chỉ là một chương trình rất đơn giản, nhưng tính năng có nó thì đáng khâm phục phải không bạn. Còn lại vài chi tiết khác bạn có thể tự mình làm lấy theo ý thích. Bạn có thể thêm vài tính năng nữa cho chương trình trở nên đa dụng, thí dụ như: Play các file Video, tự động Play một loạt các file...

Chúc bạn thành công và gặp thật nhiều may .
 
H

htqtn

Guest
21/8/05
32
0
0
44
Thais Nguyeen
Viết chương trình chơi nhạc bằng JavaScript



Nếu bạn có nhiều tệp âm thanh như MIDI, wave hoặc cả MP3 và muốn đưa chúng lên trang Web riêng của mình cho mọi người cùng thưởng thức, hoặc cũng có thể bạn không muốn sử dụng chương trình JetAudio cồng kềnh, chỉ với một đoạn trình JavaScript ngắn bạn có thể tạo ngay được một dàn âm thanh của mình.

Nhiều bài báo trước đây đã giới thiệu về cách viết chương trình bằng JavaScript - ngôn ngữ được viết trực tiếp trong tệp HTML và có thể thực hiện ngay với các trình duyệt Web hỗ trợ JavaScript. Cũng xin nói qua, JavaScript do hãng Netscape phát triển, do đó nó gắn liền với trình duyệt Netscape avigator/Communicator, còn Microsoft đưa ra JScript cho Internet Explorer (IE) - phần lớn hai ngôn ngữ này tương đương nhau, tuy vậy cũng có nhiều điểm không tương thích. Ðể có thể chạy được trên cả hai trình duyệt, ta phải viết chương trình tương thích với mỗi loại.Netscape sử dụng plug-in là LiveAudio để chạy các đối tượng âm thanh, còn IE sử dụng ActiveMovie để chạy các đối tượng âm thanh và hoạt hình. Dưới đây là một số phương thức mà ta sẽ sử dụng trong chương trình.

Khai báo đối tượng âm thanh và tạo danh sách bài hát

Khi tạo trang Web bằng ngôn ngữ HTML, sử dụng <EMBED> để khai báo một tệp đối tượng âm thanh. Dưới đây ta khai báo tệp âm thanh "nhacrung.mid" với tên NAME="mySound". Tên này sẽ được sử dụng trong suốt chương trình của ta.

Sử dụng một mảng "mySong" để lưu trữ danh sách bài hát. Mỗi phần tử của mySong là một đối tượng Song (tên bài, tên tệp). Tên bài này sẽ được thể hiện trên trang Web, tên tệp là file âm thanh trên đĩa, có thể là ".mid" hoặc ".wav" (với ActiveMovie đi kèm IE4/5.0, bạn có thể chơi được cả ".mp3").

Biến item chứa số lượng bài hát trong danh sách. Mỗi khi gọi setSong (), một bài hát được thêm vào danh sách. Dưới đây là đoạn mã chương trình:

<HTML>

<HEAD> <TITLE> Hifi Audio Player </TITLE>

</HEAD>

<BODY>

<EMBED SRC="nhacrung.mid" HIDDEN="TRUE" AUTOSTART="FALSE" NAME="mySound" MASTERSOUND">

<SCRIPT LANGUAGE="JavaScript"><!-var BrowserID=DetectBrowser();//detect Netscape or Internet Explorer?

var mySong = new Array();

var item = 0;

var songPlaying = 0

var timeoutID = 0;

function Song (songName, fileName)

{this.songName = songName; this.fileName = fileName;}

function setSong (songName, {mySong[item++] = new Song(songName, fileName);}

setSong ("Nhac rung - Hoang Viet", "nhacrung.mid"); setSong ("Bien nho - Trinh Cong Son", "biennho.mid"); setSong ("Con kenh xanh xanh - Ngo Huynh", "conkenh.mid"); setSong ("Mat troi be tho - Tran Tien", "mattroi.mid"); setSong ("Xe dap oi - Ngoc Le", "xedap.mid");

Ðiều khiển

Hàm hifiPlay () sẽ gọi hifiState () để xác định chương trình có đang bận chơi hay tạm dừng không, khi đang tạm dừng bấm "Play" sẽ tiếp tục chơi. Nếu đang ở trạng thái không chơi, hifiPlay () sẽ chơi bài hát có thứ tự là tham số "num", biến toàn cục songPlaying lưu số thứ tự bài hát đang chơi. Nếu biến này lớn hơn tổng số bài hát, nó sẽ được đặt về 0 là bài đầu tiên trong danh sách. Với Netscape, gọi phương thức mySound.play () với tham số là tên tệp bài hát cần chơi - lấy từ danh sách mySong. Với IE, gán tên tệp cần chơi cho mySound.Run (). Tuy nhiên do IE cần khoảng thời gian để tải tệp về nên ta sử dụng setTimeout (): sau 1000 mili giây mới gọi mySound.Run ().

Ðối với các hàm hifiPause () và hifiStop (), các phương thức mySound.pause () và mySound.stop () tương ứng được sử dụng. Hàm hifiState () sử dụng các phương thức kiểm tra trạng thái nêu ở bảng trên để xác định chương trình đang bận chơi hay không

function hifiPlay (num) {if (hifiState ()>) {// is paused or playing? if (BrowserID==1) document.mySound.play (); else if (BrowserID==2) document.mySound.Run ();} else {// is stop? songPlaying = num; if (songPlaying >= item) songPlaying = 0; if (BrowserID==1) //Netscape?document.mySound.play (false, mySong[songPlaying]. fileName); else {//Internet Explorer? document.mySound.FileName = mySong[songPlaying]. fileName; setTimeout ("document.mySound.Run()" 1000); //loading in 1 second } document. myForm.myList.options [songPlaying].selected = true; timeoutID = setTimeout ('keepWatching()', 1000); //Set timer}}.

function hifiStop () {if(BrowserID==1)//Netscape? document.mySound.stop(); else//Internet Explorer? document.mySound.Stop(); clearTimeout (timeoutID);//clear timer

function hifiPause () {if (BrowserID==1)//Netscape?document.mySound.pause(); else//Internet Explorer?document.mySound.Pause();}

function hifiState() {if(BrowserID==1) // Netscape? return document.mySound.IsPlaying (); else//Internet Explorer? return document.mySound.CurrentState;}

Ðể chơi nhạc được liên tục

Như vậy chúng ta đã có các chức năng cơ bản của một trình chơi nhạc. Tuy nhiên mỗi khi nhấn Play chỉ chơi một bài rồi dừng. Muốn tự động chơi tiếp các bài tiếp theo, ta phải đặt đồng hồ theo dõi khi nào kết thúc một bản nhạc để chơi tiếp bản sau. Sử dụng setTimeout () với tham số (tên hàm theo dõi, khoảng

thời gian hiệu lực), tính theo mili giây. Khi hifiPlay () thực hiện, nó sẽ gọi setTimeout ().Sau khoảng thời gian hiệu lực là 1000 mili giây = 1 giây, hàm keepWatching () sẽ tự động được thực hiện. Nếu đang ở trạng thái nghỉ, hàm này sẽ không làm gì cả, còn không sẽ gọi hifiState () để kiểm tra chương trình có đang bận chơi hay không, nếu đang chơi nó sẽ đặt tiếp thời gian theo dõi để lặp lại kiểm tra này. Còn nếu vừa kết thúc chơi một bài, hifiPlay () sẽ được gọi để chơi bài tiếp theo.

Khi người dùng nhấn "Stop", hifiStop () sẽ gọi clearTimeout () để xoá thiết lập theo dõi thời gian đặt bởi setTimeout ().

function keepWatching () {if (hifiState ()==0) hifiPlay (++songPlaying);

else

timeoutID=setTimeout ('keepWatching ()', 1000);}

Xác định tên trình duyệt

Sử dụng phương thức window.navigator.appName để lấy tên trình duyệt đang dùng. Hàm detectBrowser () sẽ cho giá trị 1 nếu trình duyệt là Netscape; 2 nếu là Internet Explorer; () là các trình duyệt khác.

function detectBrowser () {var app=navigator.appName; if

(app.index0f ("Netscape") >=0) return 1; if (app.index0f

("Explorer")>=0) return 2; return 0;}//-> </SCRIPT>

Giao diện

Ðoạn chương trình dưới đây sẽ tạo giao diện sử dụng các thể HTML, tên các bài hát được lấy từ array mySong và đưa vào danh sách combo-list. Phần sau là đoạn HTML thể hiện các nút nhấn như Play, Pause, Stop giống như một dàn âm thanh thường có.

< SCRIPT LANGUAGE="JavaScript"><!-document.write lt;CENTER><TABLE><FORM NAME="myForm" onSubmit="return false;">'); document.write ('<TR><TD ALIGN=CENTER><BIG>Web-style Audio Player</BIG></TD></TR>'); document.write ('<TR><TD ALIGN=CENTER><SELECT NAME="myList">'); document.write ('OPTION SELECTED> 1> ' +mySong [0] .songName);

for (i=1, i<item; i++) document.write ('<OPTION >' + (i+1) +'> '+ mySong .songName); document.wirte ('<SELECT></TD></TR>'); //-><SCRIPT> <TR><TD ALIGN=CENTER><INPUT TYPE="BUTTON" VALUE=" // " onClick="hifiPause ()"> <INPUT TYPE="BUTTON" VALUE=" > " onClick="hifiPlay (document.myForm.myList. selectedIndex)"> <INPUT TYPE="BUTTON" VALUE= " # " onClick="hifiStop()"></TD></TR><TR><TD

ALIGN=CENTER></TD></TR></FORM></TABLE></CENTER>

</BODY>

</HTML>

Khi Play (">") được nhấn, sự kiện onClick sẽ gọi hàm hifiPlay () với tham số là số thứ tự bài hát trong danh sách được lựa chọn. Tương tự, các phím Stop ("#"), Pause ("//")khi nhấn sẽ thực hiện các hàm hifiStop () và hifiPause ().

Các bước thực hiện chương trình

Ngôn ngữ C/C++ và Java, JavaScript có phân biệt chữ hoa/chữ thường, do đó khi gõ chương trình các bạn cần lưu ý.

1. Dùng trình soạn thảo text NotePad, nhập vào lần lượt các đoạn chương trình trên.

2. Chọn File/SaveAs, ở mục Save As Type chọn All Files (*.*), mục File name nhập với tên "hifiPlayer.html". Bấm Save.

3. Sử dụng Netscape Navigator/Communicator 2.0 trở lên, Microsoft Internet Explorer 4.0 trở lên để mở tệp trên.

Chú ý: Tệp âm nhạc trong <EMBED SRC="..."> buộc phải tồn tại trên đĩa. Các tệp âm nhạc khác nếu ở khác thư mục cần chỉ ra đường dẫn tương đối so với nơi đặt tệp html. Cũng có thể sử dụng các URL với các tệp được tải về từ Internet.

Bạn có thể thêm các tính năng khác như chế độ chơi ngẫu nhiên, chơi một số bài yêu thích hoặc theo dõi thời gian chơi của từng bài... Nếu bạn chưa có các tệp âm thanh .mid/.wav/.mp3, có thể lên Internet để lấy về. Các bạn có thể liên lạc qua email: để nhận được bản chương trình trên.
 
B

BuiKhai

Guest
30/10/15
1
0
1
27
a htqtn ơi , em gõ đoạn :
FORM

Form1.caption = "MediaPlayer - Browser"

Form1.BorderStyle = 1-Fixed Single

Form1.Minbutton=True

xong lúc dịch nó bảo sai ở :
Private Sub Form_Load() [<- chỗ này]
Form1.Caption = "MediaPlayer - Browser"
Form1.BorderStyle = 1 - FixedSingle
Form1.Minbutton=True
Text1_Change
End Sub
lúc xóa câu "Form1.Minbutton=True " đi thì lại không chậy được , anh giúp em với
 

Xem nhiều

Webketoan Zalo OA