Термин
ManagedMediaSource
Вариант MSE от Apple (iOS 17.1, конец 2023) обеспечивает Safari и другим браузерам на базе WebKit memory-conscious MSE-API. Впервые в iOS Safari появились поддержка hls.js и Shaka Player.
Большую часть истории Safari единственным способом воспроизведения HLS на iOS был AVPlayer (или `<video>` с HLS-URL – под ним тот же AVPlayer). MSE намеренно не использовался, потому что стандартный MSE-API не позволяет операционной системе отслеживать давление на память, а на мобильных устройствах это важнее, чем на десктопах. JavaScript-плееры, работавшие в Chrome и Firefox, долгое время не поддерживались в iOS Safari.
ManagedMediaSource, представленный в iOS 17.1 в ноябре 2023 года, – это ответ Apple. Он совместим с API MSE, но включает дополнительные хуки: операционная система может запросить у плеера освобождение данных из source-буфера при нехватке памяти, а сам плеер может сообщать свой memory budget. Приложения, использующие ManagedMediaSource, получают ту же модель программирования, что и в Chrome, но с кооперативным управлением памятью.
Практический эффект – hls.js (с версии 1.5, 2024), Shaka Player (с версии 4.10) и dash.js теперь работают в iOS Safari, что открывает кросс-платформенный JavaScript-код плееров, ранее требовавший платформенно-специфичных веток. AVPlayer остаётся нативным решением для iOS-приложений и по умолчанию используется для `<video src=hls>`-сокращения, но для веб-приложений, где уже используется hls.js в Chrome, тот же код теперь работает и на iOS – это значительный инженерный выигрыш.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.