- Na urządzeniach z Androidem obsługiwane są teraz odtwarzanie offline z trwałymi licencjami i Widevine L1.
- Aby zoptymalizować wydajność, Chrome wyłącza ścieżki wideo, gdy film MSE jest odtwarzany w tle.
- Deweloperzy mogą dostosowywać zakres przewijania w przypadku transmisji na żywo MSE.
- Chrome obsługuje teraz FLAC w formacie MP4 z MSE.
- Film wyświetli się na pełnym ekranie, gdy obrócisz urządzenie.
Trwałe licencje na Androida
Trwała licencja w Encrypted Media Extensions (EME) oznacza, że licencja może być przechowywana na urządzeniu, aby aplikacje mogły wczytać ją do pamięci bez wysyłania kolejnego żądania licencji do serwera. W ten sposób odtwarzanie offline jest obsługiwane w EME.
Do tej pory ChromeOS był jedyną platformą obsługującą trwałe licencje. To już nie jest prawdą. Odtwarzanie treści chronionych za pomocą szyfrowania EME jest teraz możliwe również na urządzeniach z Androidem, gdy są one offline.
const config = [{
sessionTypes: ['persistent-license'],
videoCapabilities: [{
contentType: 'video/webm; codecs="vp09.00.10.08"',
robustness: 'SW_SECURE_DECODE' // Widevine L3
}]
}];
// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
// User will be able to watch encrypted content while being offline when
// license is stored locally on device and loaded later.
})
.catch(error => {
// Persistent licenses are not supported on this platform yet.
});
Możesz samodzielnie wypróbować licencje trwałe, korzystając z próbnej wersji PWA z multimediami i wykonując te czynności:
- Wejdź na stronę https://biograf-155113.appspot.com/ttt/episode-2/.
- Kliknij „Udostępnij w trybie offline” i poczekaj, aż film zostanie pobrany.
- Włącz tryb samolotowy.
- Kliknij przycisk „Odtwórz” i obejrzyj film.
Widevine L1 na Androida
Jak pewnie wiesz, wszystkie urządzenia z Androidem muszą obsługiwać poziom zabezpieczeń 3 (Widevine L3) systemu Widevine. Istnieje jednak wiele urządzeń, które obsługują najwyższy poziom zabezpieczeń: Widevine Security Level 1, w których przypadku wszystkie operacje przetwarzania treści, szyfrowania i kontroli są wykonywane w zaufanym środowisku wykonawczym (TEE).
Dobre wieści! W Chrome na Androida jest teraz obsługiwana technologia Widevine L1, dzięki której można odtwarzać treści multimedialne w najbardziej bezpieczny sposób. Pamiętaj, że była ona obsługiwana już w ChromeOS.
const config = [{
videoCapabilities: [{
contentType: 'video/webm; codecs="vp09.00.10.08"',
robustness: 'HW_SECURE_ALL' // Widevine L1
}]
}];
// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
// User will be able to watch encrypted content in the most secure way.
})
.catch(error => {
// Widevine L1 is not supported on this platform yet.
});
Shaka Player, biblioteka JavaScriptu do obsługi formatów mediów dostosowujących się do warunków (takich jak DASH i HLS), udostępnia wersję demonstracyjną Widevine L1:
- Wejdź na https://shaka-player-demo.appspot.com/demo/ i gdy pojawi się prośba, kliknij „Zezwól”.
- Wybierz „Angel One (multikodek, wiele języków, Widevine)”.
- W polu „Zdolność do pracy w trudnych warunkach” w sekcji „Konfiguracja” wpisz
HW_SECURE_ALL
. - Kliknij przycisk „Wczytaj” i oglądaj film.
Optymalizacja ścieżki wideo w tle (tylko MSE)
Zespół Chrome stale szuka nowych sposobów na wydłużenie czasu pracy na baterii, a Chrome 62 nie jest tu wyjątkiem.
Chrome wyłącza teraz ścieżki wideo, gdy film jest odtwarzany w tle (np. na niewidocznej karcie), jeśli używa rozszerzeń źródła multimediów (MSE). Więcej informacji znajdziesz w poprzednim artykule.
Dostosowywanie zakresu przewijania w transmisjach na żywo MSE
Jak już wiesz, atrybut seekable
zawiera zakresy zasobów multimedialnych, do których przeglądarka może się odwoływać. Zwykle zawiera jeden zakres czasu, który zaczyna się od 0 i kończy w miejscu, w którym kończy się czas trwania zasobu multimedialnego. Jeśli jednak czas trwania nie jest dostępny, na przykład w przypadku transmisji na żywo, zakres czasu może się stale zmieniać.
Dobra wiadomość jest taka, że teraz możesz skuteczniej dostosowywać seekable
logikę zakresu za pomocą rozszerzeń źródła multimediów (MSE), podając lub usuwając pojedynczy zakres, który można przeskakiwać i który jest złączany z bieżącymi zakresami buforowanymi. W przypadku, gdy czas trwania źródła multimediów wynosi +Infinity
, uzyskuje się jeden zakres, w którym można przeszukiwać, który pasuje do obu.
W poniższym kodzie źródło multimediów jest już dołączone do elementu multimedialnego i zawiera tylko segment inicjalizacji:
const mediaSource = new MediaSource();
...
mediaSource.duration = +Infinity;
// Seekable time ranges: { }
// Buffered time ranges: { }
mediaSource.setLiveSeekableRange(1 /* start */, 4 /* end */);
// Seekable time ranges: { [1.000, 4.000) }
// Buffered time ranges: { }
// Let's append a media segment that starts at 3 seconds and ends at 6.
mediaSource.sourceBuffers[0].appendBuffer(someData);
// Seekable time ranges: { [1.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }
mediaSource.clearLiveSeekableRange();
// Seekable time ranges: { [0.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }
Istnieje wiele przypadków, których nie omówiliśmy powyżej, dlatego zalecamy wypróbowanie oficjalnego przykładu, aby sprawdzić, jak zakresy czasu z buforowaniem i możliwością przewijania reagują na różne zdarzenia MSE.
Intend to Ship | Chromestatus Tracker | Chromium Bug
FLAC w formacie MP4 dla MSE
Od wersji 56 przeglądarki Chrome format kodowania audio bez strat FLAC jest obsługiwany w przypadku zwykłego odtwarzania multimediów. Wkrótce potem dodano obsługę FLAC w formacie ISO-BMFF (czyli FLAC w formacie MP4). Teraz format FLAC w MP4 jest dostępny w Chrome 62 w przypadku rozszerzeń źródeł multimediów (MSE).
Dla przypomnienia: to zespół Firefoxa opracował i wdrożył obsługę specyfikacji opakowania FLAC w MP4, a BBC eksperymentowała z korzystaniem z niego w przypadku MSE. Więcej informacji znajdziesz w artykule „Delivering Radio 3 Concert Sound” (ang.) na stronie BBC.
Aby sprawdzić, czy FLAC w formacie MP4 jest obsługiwany w MSE:
if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
// TODO: Fetch data and feed it to a media source.
}
Jeśli chcesz zobaczyć pełny przykład, zapoznaj się z naszym oficjalnym plikiem.
Intend to Ship | Chromestatus Tracker | Chromium Bug
Film automatycznie przechodzi do trybu pełnoekranowego po obróceniu urządzenia
Jeśli podczas odtwarzania filmu w widoku przekręcisz urządzenie w orientację poziomą, odtwarzanie automatycznie przełączy się w tryb pełnoekranowy. Obrócenie urządzenia do orientacji pionowej spowoduje, że film powróci do trybu pełnoekranowego. Więcej informacji znajdziesz w tym artykule.