2013-11-27 18 views
6

Tôi nhận được lỗi này trong IE11, tôi đã tạm thời thay đổi tất cả các biến chỉ là một số, nhưng tôi không thể loại bỏ lỗi này.audio.currentTime invalidStateError IE11, JS, HTML5

audio.currentTime = 10; 

Các lỗi trông giống như:

SCRIPT5022: InvalidStateError 

kịch bản này hoạt động tốt trong Chrome và Firefox. Theo this page, nó sẽ hoạt động.

+0

Vì IE không thực sự hỗ trợ bất cứ điều gì đúng cách, giải pháp nhanh nhất mà tôi đưa ra là đặt thử/nắm bắt chức năng âm thanh của mình. Người dùng IE không được phép có âm thanh nếu họ vẫn sử dụng trình duyệt này ... – Jester

Trả lời

14

Tôi biết câu hỏi này là cũ nhưng tôi chỉ gặp phải cùng một vấn đề và muốn đăng những gì tôi đã học được.

Trình phát âm thanh của bạn có tải thành công âm thanh không? Nếu src = "#" hoặc nếu bạn cung cấp cho người chơi đường dẫn sai đến tệp âm thanh thì dòng mã bạn cung cấp sẽ cung cấp lỗi mà bạn đã đề cập.

tôi sẽ đề nghị cố gắng đoạn mã sau nơi Audioplayer là id của phần tử âm thanh để thực hiện một kiểm tra đơn giản mà các tập tin âm thanh đã thực sự nạp:

if (!isNaN(aud.duration)) { 
     aud.currentTime = vid.currentTime; 
    } 

Nhưng tất nhiên, nếu bạn đang mong các âm thanh đã được tải, sửa đường dẫn đến tệp âm thanh

9

Trong IE11, lỗi này xảy ra khi truy cập thuộc tính currentTime của video trước khi dữ liệu meta của video được tải. Vì vậy, mã sau giải quyết được lỗi của tôi.

vidEl.addEventListener('loadedmetadata', function() { 
    vidEl.currentTime = someSeekTime; 
}, false); 

Hy vọng điều này sẽ giúp ai đó.

+0

Đối với bản ghi/phản ứng, điều này đã hoạt động tốt. this.audioEl.onloadedData = function(): void {this.audioEl.currentTime = newTime; } .bind (this); –

+0

Điều này đã giúp tôi tiết kiệm thời gian! – Orry

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