tôi đã phải đối mặt với vấn đề này nhiều lần và dựa trên kinh nghiệm trước và đào Tôi có thể đề nghị các tùy chọn này:
- thay thế thẻ video hoàn toàn
có, chỉ cần tái chèn <video>
yếu tố với các nguồn mới. Đó là cách tiếp cận đơn giản nhưng hiệu quả. Đừng quên khởi tạo lại trình nghe sự kiện. URL của video
này tôi thấy rất nhiều trong những câu trả lời ở đây, trên stackoverflow, và cũng có trong các nguồn trên github.
var video = document.getElementById('#myVideo');
video.src = newSourceURL;
Tính năng này hoạt động nhưng bạn không thể cung cấp tùy chọn trình duyệt để chọn.
- gọi
.load()
trên yếu tố video
theo documentation bạn có thể cập nhật src
thuộc tính cho <video>
's <source>
thẻ và sau đó gọi .load()
để thay đổi có hiệu lực:
<video id="myVideo">
<source src="video.mp4" type="video/mp4" />
<source src="video.ogg" type="video/ogg" />
</video>
<script>
var video = document.getElementById('myVideo');
var sources = video.getElementsByTagName('source');
sources[0].src = anotherMp4URL;
sources[1].src = anotherOggURL;
video.load();
</script>
Tuy nhiên here người ta nói rằng có sự cố trong một số trình duyệt.
Tôi hy vọng sẽ hữu ích khi có tất cả điều này ở một nơi.
gì nên năng động và những gì là vấn đề? Bạn có trải nghiệm Javascript nào không? – deceze
Tôi muốn tạo danh sách phát, vì vậy sau khi video đầu tiên kết thúc, hãy phát video thứ hai. – March
Tôi có kinh nghiệm js, tôi đã kết thúc sự kiện như thế này $ ("# myVideo"). Bind ('ended', function() { // ??? Cách chơi tiếp theo }); – March