Question

This is related to embedded videos, not the SDK.

The HTML5 videos work fine on desktop and iOS, but on Android they only play on the Nexus phones and tablets. Unfortunately, when tested on other devices (I've tried Galaxy and Note) I'm getting the following error:

The video you are trying to watch is currently unavailable. Please check back soon.

I tried both mp4 and mov formats, retranscoded the videos in VBR and CB bitrate type. Nothing works. I know that is should work because the test page (http://support.brightcove.com/en/video-cloud/docs/video-test-html-5) plays fine on all devices.

The publishing code looks like this:

<object id="xxx" class="BrightcoveExperience">
  <param name="bgcolor" value="#FFFFFF" />
  <param name="width" value="480" />
  <param name="height" value="270" />
  <param name="playerID" value="xxx" />
  <param name="playerKey" value="xxx" />
  <param name="isVid" value="true" />
  <param name="isUI" value="true" />
  <param name="dynamicStreaming" value="true" />

  <param name="@videoPlayer" value="xxx" />

  <param name="includeAPI" value="true" />
  <param name="templateLoadHandler" value="BCLS.onTemplateLoad" />
  <param name="templateReadyHandler" value="BCLS.onTemplateReady" /> 
</object>

Any thoughts?

Was it helpful?

Solution

I've summed up the content of the Android playback tickets I've raised with Brightcove, into something that might be considered an answer:

Changing the rendition selection behavior for Android is going to be quite involved.

If you wish, you could use a player plugin for the time being to force all 4.x versions of Android to play HLS. The code at the link below uses the API to update the loaded video to use its HLS URL if available. https://gist.github.com/anonymous/29e94d6992d9105c7600 If you choose to use this you will encounter problems with Android < 4.2 when playing HLS, which is why the player prefers MP4 to HLS. The most problematic are that you can't seek, and playback stops and you'll get an error when trying to switch to fullscreen. There's nothing we can do in the browser to workaround these unfortunately -- these are problems with the device's HLS support.

There is no possibility of getting good playback on Android < 4.2 without Flash in the browser if you're using DRM. We can't improve Android's capability to play HLS in the browser, and there's no way to make an Android browser play DRM-encrypted MP4 renditions.

Android can play the unencrypted MP4 renditions, but if DRM is a must, you could consider the option of using a native app. Our Android SDK can play Widevine-encrypted videos, and there will be a version available in the future that uses a custom library to play HLS to overcome the shortcomings of Android's native HLS playback (in the app).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top