I can’t seem to reliably play HLS content on Apple products running IOS. The player (v2.81) loads correctly and I don’t get any error in the js console or by running kaltlog but when I press play, it doesn’t work. In Safari, I get the loading spinner and nothing else. In Chrome, pressing play doesn’t work either (fires player events “playing” then “paused”) but if I manually choose a flavor from the player itself (ie 720p), the media starts playing. Note also that only the lowest flavor is available for selection, even if there are multiple available for the entry. It seems like the player has trouble handling multiple streams from an IOS device.
Everything works flawlessly on Windows and Android. Media starts playing when play is pressed as expected.
I have found a workaround but it is not really an acceptable one, being that I use progressive download when an Apple device is detected by setting “Kaltura.UseAppleAdaptive” to false. But I want HLS delivery across all plateforms.
I’m running out of ideas on how to fix this. Any help would be much appreciated.
More info on this after some more tests. I confirmed that even the built-in player in the Kaltura Management Console (both the preview player in an entry and a custom player in Universal Studio) do not work on Apple devices, be it an iPad or a macOS computer. The spinner just spins and the video never plays. On macs we get a “net::ERR_CONNECTION_TIMED_OUT” error in the js console.
This basically removes from the equation any code I might have added to the player on the front end side of things. The core code of the Kaltura Player simply doesn’t work on macs for me.
Now is there something that I can tweak in the server config to work around this?. Maybe in the delivery profiles? But unless shown otherwise this looks like a serious bug / limitation to me. I was able to play HLS on macs when using a previous custom coded player built around Hls.js. We shouldn’t have to settle for progressive download on Apple devices considering they support HLS natively.
Hopefully I got something wrong. Please advise if I did.
Basically, you need to start by finding the failing requests made by the player when hitting play and then go over the configuration and logs as detailed in the second post I referred you to above.