videojs / videojs-contrib-quality-levels

Other
157 stars 51 forks source link

No levels available in Safari #20

Closed EJIqpEP closed 7 years ago

EJIqpEP commented 7 years ago

Hi. Thank you for awesome plugin. For me it works smoothly in all browsers except Safari (web and mobile). The addqualitylevel is not firing in Safari at all. And even when I check levels after some time there are no levels available.

player.qualityLevels().on('addqualitylevel', function(event) {})

Can you recommend any workaround for it? Here is an example where it doesn't work.

http://jsbin.com/vagelic/edit?js,console,output

mjneil commented 7 years ago

videojs-contrib-hls lets Safari's native HLS implementation take control. There is not an api in safari to extract the quality level information or to manually enable/disable levels, so quality levels will be unavailable in safari. One workaround you could do is to override safari's native playback with videojs-contrib-hls using some options however we have seen playback issues in the past with this and recommend letting Safari's native playback takeover

EJIqpEP commented 7 years ago

Awesome. Thanks for such a quick answer.

vmangelovv commented 3 years ago

@mjneil do you know this workaround is only for desktop Safari. Mobile safari does not support it. I have to know if that is true. Wyt? (https://github.com/videojs/videojs-contrib-hls/issues/1005#issuecomment-339042409)

gkatsev commented 3 years ago

It's not possible on iPhones because Safari there doesn't contain the relevant APIs (it doesn't have MSE), but on desktop and ipados, you can set overrideNative: true, though, we wouldn't recommend it because we don't generally test our playback engine in those browsers.