2016-09-05 19 views
7

मैं एक ऑडियो पृष्ठभूमि प्लेयर बनाना चाहता हूं जहां उपयोगकर्ता प्लेबैक को चलाने या रोकने के लिए केवल छवि पर क्लिक कर सकता है। मुझे इसके लिए प्लेलिस्ट बनाने के लिए मौजूदा कोड बनाने या पुनर्विचार करने में परेशानी है, जो पिछले समाप्त होने पर स्वचालित रूप से अगले गीत को चलाता है। मैं इसे वेनिला जेएस में करना चाहता हूं।
https://jsfiddle.net/rockarou/ad8Lkkrj/ऑडियो ऑटो प्ले अगले गीत समाप्त होने पर अगला गीत

var imageTracker = 'playImage'; 

swapImage = function() { 
    var image = document.getElementById('swapImage'); 
    if (imageTracker == 'playImage') { 
    image.src = 'http://findicons.com/files/icons/129/soft_scraps/256/button_pause_01.png'; 
    imageTracker = 'stopImage'; 
    } else { 
    image.src = 'http://findicons.com/files/icons/129/soft_scraps/256/button_play_01.png'; 
    imageTracker = 'playImage'; 
    } 
}; 

var musicTracker = 'noMusic'; 

audioStatus = function() { 
    var music = document.getElementById('natureSounds'); 
    if (musicTracker == 'noMusic') { 
    music.play(); 
    musicTracker = 'playMusic'; 
    } else { 
    music.pause(); 
    musicTracker = 'noMusic'; 
    } 
}; 

उत्तर

1
यहाँ

अगले गीत को गति प्रदान करने चाल है:
यहाँ मैं अब तक किया है

music.addEventListener('ended',function(){ 
     //play next song 
    }); 

कैसे एक ही ऑडियो टैग पर एक और गीत खेलने के लिए:

music.pause(); 
music.src = "new url"; 
music.load(); 
music.play(); 

अब एचटीएमएल 5 में प्लेलिस्ट का एक अच्छा उदाहरण है, आप उस समय प्रत्येक गीत को लोड कर सकते हैं, कुछ क्लाइंट

//playing flag 
var musicTracker = 'noMusic'; 
//playlist audios 
var audios = []; 
$(".song").each(function(){ 
     var load = new Audio($(this).attr("url")); 
    load.load(); 
    load.addEventListener('ended',function(){ 
     forward(); 
    }); 
    audios.push(load); 
}); 
//active track 
var activeTrack = 0; 

हाइलाइट करना डायन गाना है: रों (मोबाइल) जब आप यातायात का उपभोग नहीं खुश हो जाएगा, अगले उदाहरण में सभी ऑडियो एक ही समय में लोड किए गए हैं के गाने पर बिना किसी के लिए, गीतों को लोड हाँ मैं आलसी, आलसी jQuery, हाँ, मामले का एक सा के साथ, खेल रहा है:

var showPlaying = function() 
{ 
    var src = audios[activeTrack].src; 
    $(".song").removeClass("playing"); 
    $("div[url='" + src + "']").addClass("playing"); 
}; 

Fiddle here

नोट: ध्वनि के खेलने नहीं करता है, मैन्युअल रूप से जाँच करता है, तो ऑडियो url के सुलभ हैं

संबंधित मुद्दे