I have an HLS stream coming from Wowza. I know it works on Android because when I go directly to the URL in the browser on my phone it plays in the native video player in Chrome. However, JW Player throws a no playable sources error. I know the stream works on my device but JW Player won't play it. Any help?
Fred that's what I have to do as well. I have a combo of PHP and javascript to determine Android and then which version. Anything below 4.0 gets an RTSP stream and anything 4.0 and above gets HLS.
Ethan, that article doesn't really answer my question and it's also a bit wrong.
" To be fair, its not all Androids fault for lacking support for HLS in version 4.2 and beyond."
I'm testing HLS streams on Android 4.4.2 and they work fine using the video tag. That's why I'm confused. The stream works perfectly fine and is supported, just not by JW Player. Does JW Player even attempt to play the stream or does it detect Android and just automatically throw the error? If it's working using a video tag shouldn't JW Player be able to play it?
Ethan, a simple workaround would be for all android devices to redirect to the HLS stream without loading anything else... at least it would prevent us to do that with PHP. Or when you click the play icon in the middle of the player it would link direct to the HLS.
That works but when I tap the play button it acts like a link. The stream opens up in full screen in the browser and shows the Wowza URL in the address bar. It doesn't look like JW Player is actually playing it.
I mean it's better than nothing but it's kind of a bummer. It doesn't seem like the player even attempts to play the stream. It just detects Android and automatically assumes it can't play it. Hopefully this is something that can be addressed.
Is there any way to implement a version detection in the player so that if it's 4.0 and up the m3u8 stream is playable? I found this script somewhere and it works pretty well for me...
bc.. var ua = navigator.userAgent; if( ua.indexOf("Android") >= 0 ) { var androidversion = parseFloat(ua.slice(ua.indexOf("Android")+8)); if (androidversion < 4.0) { do something here } else { do something else here } }
You could use that script to do something, like show the m3u8 directly, or rtsp for older androids. We are not going to add this into the player just yet though.
This question has received the maximum number of answers.