2012-07-04 4 views
17

Tôi có một thư mục trên trang web của tôi với một số mp3. Tôi tự động tạo danh sách các trang web đó bằng cách sử dụng php.Làm thế nào để phát mp3 bằng Javascript?

Tôi cũng có chức năng kéo và thả được liên kết với chúng và tôi có thể chọn danh sách các mp3 đó để phát.

Bây giờ, hãy đưa ra danh sách đó, làm cách nào tôi có thể nhấp vào nút (Phát) và đặt trang web phát mp3 đầu tiên của danh sách? (Tôi cũng biết nhạc ở đâu trên trang web)

+0

Trong trình duyệt hiện đại, bạn có thể sử dụng [HTML5 của '

Trả lời

19

Nếu bạn muốn có một phiên bản mà làm việc cho trình duyệt cũ, tôi đã thực hiện thư viện này:

function Sound(source,volume,loop) 
{ 
    this.source=source; 
    this.volume=volume; 
    this.loop=loop; 
    var son; 
    this.son=son; 
    this.finish=false; 
    this.stop=function() 
    { 
     document.body.removeChild(this.son); 
    } 
    this.start=function() 
    { 
     if(this.finish)return false; 
     this.son=document.createElement("embed"); 
     this.son.setAttribute("src",this.source); 
     this.son.setAttribute("hidden","true"); 
     this.son.setAttribute("volume",this.volume); 
     this.son.setAttribute("autostart","true"); 
     this.son.setAttribute("loop",this.loop); 
     document.body.appendChild(this.son); 
    } 
    this.remove=function() 
    { 
     document.body.removeChild(this.son); 
     this.finish=true; 
    } 
    this.init=function(volume,loop) 
    { 
     this.finish=false; 
     this.volume=volume; 
     this.loop=loop; 
    } 
} 

Tài liệu:

Sound mất ba đối số. Url của âm thanh, âm lượng (từ 0 đến 100) và vòng lặp (true to loop, false không lặp).
stop cho phép start sau (trái với remove).
init đặt lại âm lượng và vòng lặp đối số.

Ví dụ:

var foo=new Sound("url",100,true); 
foo.start(); 
foo.stop(); 
foo.start(); 
foo.init(100,false); 
foo.remove(); 
//Here you you cannot start foo any more 
+0

có thể biết khi nào âm nhạc kết thúc? –

+1

Bạn có độ dài của âm nhạc không? – Mageek

+0

trình duyệt hỗ trợ cho âm thanh đơn giản: http://caniuse.com/#search=audio –

2

Bạn có thể sử dụng thẻ <audio> HTML5 để phát âm thanh bằng JavaScript.

Nhưng đây không phải là giải pháp đa trình duyệt. Nó chỉ được hỗ trợ trong các trình duyệt hiện đại. Đối với khả năng tương thích trình duyệt chéo, bạn có thể cần phải sử dụng Flash cho điều đó (ví dụ: jPlayer).

Bảng tương thích trình duyệt được cung cấp tại liên kết tôi đã đề cập ở trên.

+0

Bạn có thể cung cấp ví dụ flash không? –

+0

@aF. bạn có thể thấy rất nhiều bản demo tại đây: http://jplayer.org/latest/demos/. jPlayer là mã nguồn mở và được phát hành theo giấy phép GPL và MIT. – antyrat

5

Bạn có thể sẽ muốn sử dụng các yếu tố HTML5 audio mới để tạo ra một đối tượng Audio, tải nhạc mp3, và chơi nó.

Do trình duyệt không thống nhất, mã mẫu này hơi dài, nhưng nó phải phù hợp với nhu cầu của bạn bằng một chút tinh chỉnh.

//Create the audio tag 
var soundFile = document.createElement("audio"); 
soundFile.preload = "auto"; 

//Load the sound file (using a source element for expandability) 
var src = document.createElement("source"); 
src.src = fileName + ".mp3"; 
soundFile.appendChild(src); 

//Load the audio tag 
//It auto plays as a fallback 
soundFile.load(); 
soundFile.volume = 0.000000; 
soundFile.play(); 

//Plays the sound 
function play() { 
    //Set the current time for the audio file to the beginning 
    soundFile.currentTime = 0.01; 
    soundFile.volume = volume; 

    //Due to a bug in Firefox, the audio needs to be played after a delay 
    setTimeout(function(){soundFile.play();},1); 
} 

Edit:

Để thêm hỗ trợ Flash, bạn sẽ thêm một object yếu tố bên trong thẻ audio.

+0

Tôi biết câu trả lời này là 4 tuổi. Nhưng trong danh sách của họ ở đây, đây là cái tốt nhất. Tôi đã chỉnh sửa nó một chút để phục vụ cho mục đích của mình. Nhưng nó hoạt động trên mọi thứ. Ngay cả IE. Và điều đó thực sự đang nói điều gì đó. – durbnpoisn

1

Bạn có thể thử SoundManager 2: nó sẽ xử lý minh bạch thẻ <audio> ở bất cứ đâu được hỗ trợ và sử dụng Flash ở bất cứ đâu.

0

Giả sử trình duyệt hỗ trợ phát lại MP3 và khá mới để hỗ trợ các tính năng JavaScript mới hơn, tôi khuyên bạn nên xem jPlayer. Bạn có thể xem bản trình diễn ngắn tutorial về cách triển khai.

59

new Audio('<url>').play()

+3

Tài liệu đầy đủ: https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement – aymericbeaumet

0

Thưởng thức nó;)

<html> 
<head> 
    <title>Play my music....</title> 
</head> 
<body> 
    <ul> 
     <li> 
     <a id="PlayLink" href="http://www.moderntalking.ru/real/music/Modern_Talking-You_Can_Win(DEMO).mp3" onclick="pplayMusic(this, 'music_select');">U Can Win</a> 
     </li> 
     <li> 
     <a id="A1" href="http://www.moderntalking.ru/real/music/Modern_Talking-Brother_Louie(DEMO).mp3" onclick="pplayMusic(this, 'music_select');">Brother Louie</a> 
     </li> 
    </ul> 
<script type="text/javascript" src="http://mediaplayer.yahoo.com/js"></script> 
</body> 
</html>