2014-10-06 15 views
20

Tôi đã tạo một trang web cho trò chơi trực tuyến mà tôi chơi. Trong tiêu đề, tôi có một video HTML5 phát rất nhanh (1 giây). Trong Internet Explorer, không có vấn đề gì, tuy nhiên trong Chrome khi video đang tải thì có một màn hình đen rất ngắn. Có cách nào mà tôi có thể loại bỏ flash này, hoặc, thất bại, làm cho nó trắng để phù hợp với nền? Bạn có thể thấy những gì tôi có ý nghĩa ở đây http://testingfortagpro.meximas.com/. Nếu bạn thử nó trong IE và Chrome, bạn sẽ thấy sự khác biệt trong cách tải video. Ngoài ra có cách nào tốt hơn để thực hiện điều này? Tôi đã thử sử dụng GIF động nhưng chất lượng được giảm đáng kể.Xóa đèn flash tải đen trên video HTML5

Cảm ơn!

+0

http://stackoverflow.com/questions/19974902/change-background-color-of-html5-video-element –

Trả lời

30

Phần Poster của blog post điều này chỉ ra như sau: "Nếu bạn không chỉ định một hình ảnh áp phích trình duyệt có thể chỉ hiển thị một hộp đen điền kích thước của phần tử"

Vì vậy, bạn dường như không thể khắc phục điều này bằng cách thêm một background-color màu trắng để các yếu tố video ... nhưng bạn có thể thêm ảnh áp phích màu trắng đơn giản như vậy:

<video width="320" height="240" autoplay="" poster="http://dummyimage.com/320x240/ffffff/fff" > 
 
    <source src="http://testingfortagpro.meximas.com/movie2.mp4" type="video/mp4"> 
 
</video>

+0

Tôi đã tải lên các thay đổi nhưng nó vẫn có vẻ như trước đây:/ – Tom

+1

Bạn đã thử làm mới bộ nhớ cache của trình duyệt của bạn? Nó làm việc hoàn hảo cho tôi trong chrome trong mã mẫu. – TimHayes

+0

Nó hoạt động tốt cho tải đầu tiên nhưng sau đó nếu bạn làm mới trang, hoặc bấm vào các liên kết khác hộp đen là trở lại. – Tom

2

Bạn có thể sử dụng trong suốt gif poster:

poster="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" 

Nhưng điều đó là không đủ để loại bỏ nhấp nháy trong Firefox. Tôi đã kết thúc bằng cách ẩn video cho đến khi phát:

<video autoplay style="visibility:hidden;" onplay="var s=this;setTimeout(function(){s.style.visibility='visible';},100);"> 

Điều chỉnh thời gian chờ khi bạn thấy phù hợp. Khi không sử dụng tính năng tự động phát, tôi phải tăng lên tới 400 ms.

+0

Điều này không hoạt động. Nó nhấp nháy màu đen và sau đó nó ẩn video trong khoảng thời gian được chỉ định làm cho nó phản tác dụng. –

+0

@Darryl: bạn đang sử dụng trình duyệt và hệ điều hành nào? Bạn có thể thử xóa tự động phát và bắt đầu video theo cách thủ công. – user

+0

Điều đó đang xảy ra với tôi trên Firefox dành cho Mac. Video tôi có nghĩa vụ phát trên trang tải. Đó là những gì khách hàng của tôi muốn. –

1

Tôi đã gặp sự cố tương tự và sửa lỗi bằng cách ẩn phần tử video bằng cách sử dụng hiển thị CSS: không cho đến khi phần tử video báo hiệu nó đã tải xong thông qua sự kiện onLoadedData và phản hồi sự kiện tôi đặt display: block.

Điều đó đã thoát khỏi đèn flash đen.

1

Đặt thuộc tính áp phích vào thẻ video không ngăn hộp đen nhấp nháy khi người dùng làm mới trang tuy nhiên tôi đã sử dụng chức năng ẩn trên sự kiện 'beforeunload' và giờ đèn flash đen đã biến mất.

$(window).on('beforeunload', function() { 
    $("video").hide(); 
}); 
+0

Thử tạm dừng video. Nó không giấu chúng, chỉ dừng lại. Trông mượt mà hơn. Đã giúp tôi: '$ (cửa sổ) .on ('beforeunload', function() { $ (" video "). Each (function() { $ (this) .get (0) .pause(); }); }); ' –

0

Tôi gặp sự cố nhấp nháy tương tự trong Firefox, ngay cả với thuộc tính áp phích được đặt. Tôi đã sửa lỗi này bằng cách thêm hình nền vào thẻ video tương ứng với khung hình đầu tiên của video.

0

$ (cửa sổ) .on ('beforeunload', function() {$ ("video"). Hide();});

Thao tác này sẽ ẩn phần tử video ngay trước khi cửa sổ tải xuống và tải tài liệu tiếp theo.