Obecnie podczas korzystania z rozszerzeń źródła multimediów (MSE) w Chrome nie można przełączać się między zaszyfrowanymi a czystymi strumieniami. W rzeczywistości nie jest to zabronione przez specyfikację MSE. Ograniczenie to dotyczy raczej sposobu konfiguracji potoku multimediów pod kątem obsługi rozszerzeń zaszyfrowanych multimediów (EME).
MSE wymaga, aby strumienie multimediów zaczynały się od segmentu inicjowania, który zawiera takie informacje jak dane inicjowania kodeka i informacje o szyfrowaniu. Zwykle segment inicjowania znajduje się na początku pliku multimedialnego. Oznacza to, że multimedia dołączone do elementu multimedialnego za pomocą pobierania lub MSE „po prostu działają”.
Problem pojawia się, gdy próbujesz zmienić parametry multimediów w trakcie transmisji. Zmiana charakterystyki multimediów wymaga przekazania nowego segmentu inicjowania. W większości przypadków takie rozwiązanie sprawdza się. Odtwarzanie będzie kontynuowane. Wyjątkiem są ustawienia szyfrowania. Ustawienia szyfrowania z pierwszego segmentu inicjowania wskazują tylko, czy segmenty strumienia mogą być zaszyfrowane, co oznacza, że do strumienia można wstawiać segmenty z czystych multimediów. Pamiętaj, że w przypadku niezaszyfrowanego strumienia z nawet 1 zaszyfrowanym segmentem w segmencie inicjowania muszą być uwzględnione informacje o szyfrowaniu. Dlatego wstawianie reklam wymaga rozwiązań, które nie mają zastosowania na innych platformach.
Wszystkie te zmiany wprowadzamy w Chrome od wersji 58. Teraz w tym samym strumieniu możesz przełączać się między trybem zaszyfrowanym i niezaszyfrowanym. Poprawia to zgodność przez dopasowywanie działań, które występują już w przeglądarkach Firefox i Edge.
Ma to kilka zastrzeżeń. Po pierwsze, jeśli spodziewasz się, że w swoich strumieniach multimediów będą zaszyfrowane segmenty, musisz ustawić MediaKeys z góry. Nie można łączyć protokołu HTTP i HTTPS w tym samym źródle.