Zajęło mi zbyt długo, aby dowiedzieć się, jak to zrobić, ale mam zamiar podzielić się tym tutaj, ponieważ WRESZCIE znalazłem sposób! Co jest niedorzeczne, gdy się nad tym zastanowić, ponieważ ładowanie jest czymś, co muszą zrobić wszystkie filmy. Można by pomyśleć, że wzięliby to pod uwagę przy tworzeniu standardu wideo HTML5.
Moja oryginalna teoria, że pomyślałem, że powinienem pracowali (ale nie) był to
- Dodaj do załadunku bg obrazu wideo podczas ładowania poprzez js i css
- Usuń gdy gotowy do gry
Proste, prawda? Problem polegał na tym, że nie mogłem uzyskać obrazu tła wyświetlanego po ustawieniu elementów źródłowych lub ustawiono atrybut video.src. Ostatnim uderzeniem geniuszu/szczęścia było odkrycie (poprzez eksperymenty), że obraz tła nie zniknie, jeśli plakat zostanie ustawiony na coś. Używam fałszywego obrazu z plakatu, ale wyobrażam sobie, że będzie on działał równie dobrze z przezroczystym obrazem 1x1 (ale po co martwić się o inny obraz). To sprawia, że jest to prawdopodobnie hack, ale działa i nie muszę dodawać dodatkowego znacznika do mojego kodu, co oznacza, że będzie on działał we wszystkich moich projektach przy użyciu wideo html5. (Klasa loading stosowane do wideo z JS)
HTML
<video controls="" poster="data:image/gif,AAAA">
<source src="yourvid.mp4"
</video>
CSS
video.loading {
background: black url(/images/loader.gif) center center no-repeat;
}
JS
$('#video_id').on('loadstart', function (event) {
$(this).addClass('loading');
});
$('#video_id').on('canplay', function (event) {
$(this).removeClass('loading');
$(this).attr('poster', '');
});
Działa to doskonale dla mnie, ale tylko przetestowane w Chrome i Safari na prochowiec. Daj mi znać, jeśli ktoś znajdzie błędy lub ulepszenia!
hi, ja już miejsce plakat. ale może być przerwa w czasie pomiędzy użytkownikami, kliknij przycisk "Odtwórz" i zacznij grać –
Następnie widzisz czerń samego filmu, najlepiej przyciąć film, aby usunąć początkową czerń lub dodać ten sam obraz miejsca na początku wideo, jeśli użytkownik naciśnie przycisk odtwarzania, to wideo jest odtwarzane, więc widzą, że i jeśli następnie zatrzymuje się na bufor, widzą ostatni obraz, który grał –
, ponieważ moje aplikacje asp.net to strona mobilna, potrzebne jest kliknięcie wideo przez użytkownika aby odtworzyć wideo (Android, iPhone nie obsługuje autoodtwarzania). więc nie mogę zrobić "załadunku" logo jako plakatu, w przeciwnym razie użytkownik będzie mylić o tym. Chcę wyświetlać ładowanie logo, gdy użytkownik kliknie przycisk odtwarzania na iPadzie. –