2012-02-23 8 views
19

के साथ ऑडियो स्रोत स्विच करें मुझे केवल एक अन्य समाधान मिला है लेकिन यह अपूर्ण था इसलिए मुझे यहां सहायता चाहिए।jquery और HTML5 ऑडियो टैग

मैं ऑडियो की स्थापना की है:

<audio id="player" controls="controls"> 
      <source id="ogg_src" src="lib/audio/barger01.ogg" type="audio/ogg" /> 
      <source id="mp3_src" src="lib/audio/barger01.mp3" type="audio/mp3" /> 
      Your browser does not support the audio element. 
    </audio> 

मैं ट्रैक बदलने के लिए लिंक का एक गतिशील रूप से उत्पन्न तालिका है:

<div id="audio_list"> 
    <a href="#" class="track" data-location="http://www.newoggtrack.ogg">sample</a> 
</div> 

मैं इस jQuery मैं कोई सुराग नहीं क्या क्या करना है कि है ट्रैक

$('.track').click(function(){ 

    load_track = $(this).attr('data-location');//gets me the url of the new track 

    change_track(load_track);// function to change the track of the loaded audio player without page refresh preferred... 

}); 

मुझे यह फ़ंक्शन मिला लेकिन मैं इसे सही तरीके से उपयोग नहीं कर रहा हूं

function change_track(sourceUrl) { 

     audio.empty(); 
     $("#ogg_src").attr("src", sourceUrl).appendTo(audio); 
     /****************/ 
     audio[0].pause(); 
     audio[0].load();//suspends and restores all audio element 
     /****************/ 
    } 

audio = $("<audio>").attr("id", "player") 
         .attr("preload", "auto"); 
+2

आपकी समस्या क्या है? जब आप कोशिश करते हैं और स्विच करते हैं तो क्या होता है? क्या आपको कोई त्रुटि मिलती है? और 'फंक्शन चेंज()' के साथ कोड एक सीधी प्रतिलिपि और पेस्ट है या क्या यह सिर्फ आपके द्वारा निकाले गए कोड के टुकड़े हैं? – Ktash

+0

परिवर्तन समारोह कुछ ऐसा मिला है लेकिन यह काम नहीं करता है। यह अब त्रुटि –

+1

त्रुटि को तब फेंकता है। अगर आप नहीं जानते कि क्या गलत है तो आप लोगों की आपकी मदद कैसे करेंगे? – bububaba

उत्तर

59

आपका परिवर्तन समारोह इस तरह होना चाहिए:

function change(sourceUrl) { 
    var audio = $("#player");  
    $("#ogg_src").attr("src", sourceUrl); 
    /****************/ 
    audio[0].pause(); 
    audio[0].load();//suspends and restores all audio element 

    //audio[0].play(); changed based on Sprachprofi's comment below 
    audio[0].oncanplaythrough = audio[0].play(); 
    /****************/ 
} 

समस्याओं audio.empty() और ऑडियो वर थे। आप एक खाली ऑडियो टैग को जोड़ने का प्रयास कर रहे थे, और ब्राउजर पर ऑडियो टैग वापस नहीं लिखा था।

+0

सहायता के लिए धन्यवाद। यह साफ हो गया कि मैं क्या कर रहा था और एक आकर्षण की तरह काम करता है। मुझे उम्मीद है कि मैं सही ढंग से बक्षीस से सम्मानित हूं। –

+0

मेरी समस्या हल हो गई। ऐसा लगता है कि आपको लोड() विधि का उपयोग करना है, अन्यथा एचटीएमएल प्लेयर वास्तव में ध्वनि लोड नहीं करेगा, भले ही डीओएम अपडेट किया गया हो। धन्यवाद! – Shahar

+1

ऑडियो = $ ("# प्लेयर") –

5

आप फ़ंक्शन का नाम बदलना भी चाहेंगे क्योंकि 'परिवर्तन' पहले से ही jQuery ब्रह्मांड में एक फ़ंक्शन है।

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