2012-02-23 52 views
19

Tôi chỉ tìm thấy một giải pháp khác nhưng giải pháp chưa hoàn chỉnh nên tôi cần trợ giúp tại đây.chuyển nguồn âm thanh bằng jquery và thẻ âm thanh HTML5

tôi đã âm thanh thiết lập:

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

Tôi có một bảng tạo động các liên kết để thay đổi ca khúc:

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

tôi có jquery này mà tôi không có đầu mối phải làm gì với để thay đổi tuyến đường

$('.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... 

}); 

tôi tìm thấy chức năng này nhưng tôi không sử dụng đúng cách

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

Vấn đề của bạn là gì? Điều gì sẽ xảy ra khi bạn thử và chuyển đổi? Bạn có mắc lỗi gì không? Và là mã với 'thay đổi hàm()' một bản sao và dán trực tiếp hay nó chỉ là những đoạn mã bạn đã rút ra? – Ktash

+0

chức năng thay đổi là một cái gì đó tôi tìm thấy nhưng nó không hoạt động. nó ném ngay bây giờ lỗi –

+1

Đăng lỗi sau đó. Làm thế nào để bạn mong đợi mọi người để giúp bạn nếu họ không biết có gì sai? – bububaba

Trả lời

59

chức năng thay đổi của bạn nên được như thế này:

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

Những vấn đề đã audio.empty() và var âm thanh. Bạn đã cố gắng thêm một thẻ âm thanh trống và không ghi lại thẻ âm thanh trở lại trình duyệt.

+0

Cảm ơn sự giúp đỡ của bạn. Nó làm sáng tỏ những gì tôi đã làm doind và hoạt động như một say mê. Tôi hy vọng tôi đã trao tiền thưởng một cách chính xác. –

+0

Giải quyết vấn đề của tôi. Dường như bạn phải sử dụng phương thức load(), nếu không trình phát HTML sẽ không thực sự tải âm thanh, ngay cả khi DOM đã được cập nhật. cảm ơn! – Shahar

+1

audio = $ ("# player") –

5

Bạn cũng có thể muốn đổi tên hàm kể từ khi 'thay đổi' đã là một hàm trong vũ trụ jQuery.

Các vấn đề liên quan