2012-07-04 26 views
17

मेरे पास कई एमपी 3 के साथ मेरी वेबसाइट पर एक निर्देशिका है। मैं php का उपयोग कर वेबसाइट में गतिशील रूप से उनकी एक सूची बनाते हैं।जावास्क्रिप्ट का उपयोग कर एमपी 3 कैसे खेलें?

मेरे पास उनके साथ एक ड्रैग और ड्रॉप फ़ंक्शन भी है और मैं खेलने के लिए उन एमपी 3 की एक सूची का चयन कर सकता हूं।

अब, यह सूची देकर, मैं एक बटन (प्ले) पर कैसे क्लिक कर सकता हूं और वेबसाइट को सूची का पहला एमपी 3 खेल सकता हूं? (मुझे यह भी पता है कि संगीत वेबसाइट पर कहां है)

+0

आधुनिक ब्राउज़रों में, आप इस्तेमाल कर सकते हैं [एचटीएमएल 5 का '

उत्तर

19

आप एक संस्करण है कि पुराने ब्राउज़र के लिए काम करता है चाहते हैं, मैं इस पुस्तकालय बना दिया है:

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; 
    } 
} 

प्रलेखन:

Sound तीन तर्क लेता है। ध्वनि का यूआरएल, वॉल्यूम (0 से 100 तक), और लूप (लूप के लिए सच, गलत नहीं लूप)।
stopstart के बाद (remove के विपरीत) की अनुमति दें।
init तर्क मात्रा और लूप को दोबारा सेट करें।

उदाहरण:

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

क्या यह जानना संभव है कि संगीत कब समाप्त होता है? –

+1

क्या आपके पास संगीत की लंबाई है? – Mageek

+0

ब्राउज़र सरल ऑडियो के लिए समर्थन करते हैं: http://caniuse.com/#search=audio –

2

आप जावास्क्रिप्ट का उपयोग कर ऑडियो चलाने के लिए <audio> एचटीएमएल 5 टैग का उपयोग कर सकते हैं।

लेकिन यह क्रॉस-ब्राउज़र समाधान नहीं है। यह केवल आधुनिक ब्राउज़रों में समर्थित है। क्रॉस-ब्राउज़र संगतता के लिए आपको शायद उस के लिए फ्लैश का उपयोग करने की आवश्यकता है (उदाहरण के लिए jPlayer)।

ब्राउज़र संगतता तालिका ऊपर वर्णित लिंक पर प्रदान की जाती है।

+0

क्या आप एक फ्लैश उदाहरण प्रदान कर सकते हैं? –

+0

@ एएफ। आप यहां बहुत सारे डेमो देख सकते हैं: http://jplayer.org/latest/demos/। जेप्लेयर ओपनसोर्स है और जीपीएल और एमआईटी लाइसेंस के तहत जारी किया गया है। – antyrat

5

आप शायद नए एचटीएमएल 5 audio तत्व का उपयोग करने के लिए, एक Audio वस्तु बनाने के एमपी 3 लोड करना चाहते हैं जाएगा, और यह खेलते हैं।

ब्राउज़र असंगतताओं के कारण, यह नमूना कोड थोड़ा लंबा है, लेकिन इसे आपकी आवश्यकताओं को थोड़ी-थोड़ी tweaking के साथ अनुरूप होना चाहिए।

//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); 
} 

संपादित करें:

फ्लैश समर्थन जोड़ने के लिए, आप audio टैग के अंदर एक object तत्व संलग्न करेंगे।

+0

मुझे पता है कि यह जवाब 4 साल का है। लेकिन यहां उनकी सूची में, यह सबसे अच्छा है। मैंने अपने उद्देश्यों को पूरा करने के लिए थोड़ा सा tweaked। लेकिन यह सब कुछ पर काम करता है। यहां तक ​​कि आईई। और वह वास्तव में कुछ कह रहा है। – durbnpoisn

1

आप SoundManager 2 को आजमा सकते हैं: यह कहीं भी समर्थित होने पर <audio> टैग को पारदर्शी रूप से संभालेगा, और फ्लैश का उपयोग कहीं भी नहीं करेगा।

0

मान लीजिए कि ब्राउज़र एमपी 3 प्लेबैक का समर्थन करता है और नई जावास्क्रिप्ट सुविधाओं का समर्थन करने के लिए बिल्कुल नया है, तो मैं jPlayer पर एक नज़र डालने का सुझाव दूंगा। आप इसे कार्यान्वित करने के तरीके पर एक लघु डेमो tutorial देख सकते हैं।

59

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

+3

पूर्ण प्रलेखन: https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement – aymericbeaumet

0

यह आनंद लें,)

<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> 
संबंधित मुद्दे