google / ExoPlayer

This project is deprecated and stale. The latest ExoPlayer code is available in https://github.com/androidx/media
https://developer.android.com/media/media3/exoplayer
Apache License 2.0
21.72k stars 6.03k forks source link

SimpleExoPlayer.setVideoTextureView() fails with mpd + Widevine #2785

Closed niusounds closed 7 years ago

niusounds commented 7 years ago

Issue description

SimpleExoPlayer.setVideoTextureView() fails with mpd + Widevine and stops playback.

On some devices(Nexus5, Galaxy S6), mpd(WebM,VP9) + Widevine is playable but some device (Pixel) cannot play it. Without DRM mpd(MP4,H264 or H265 and WebM,VP9) is working well.

I think it is actually a problem of SimpleExoPlayer.setVideoSurface(). I use this method to play video in VR app. It does not work.

Reproduction steps

Use exoPlayer.setVideoTextureView(textureView) for video output.

For more details, see whole Activity codes or clone this project https://github.com/niusounds/ExoPlayer_TextireView

Link to test content

See my project's README

Version of ExoPlayer being used

2.4.0

Device(s) and version(s) of Android being used

A full bug report captured from the device

bugreport-N2G47O-2017-05-08-18-06-57.zip

andrewlewis commented 7 years ago

TextureView can't be used to show Widevine L1 DRM content, which requires a secure output path. See also our FAQs.

niusounds commented 7 years ago

Thank you for response.

Sorry, I didn't know that limitation.

Is there no way to render DRM protected content to Open GL Texture? I would like to create VR video player app that supports Widevine... (or some other DRM scheme)

andrewlewis commented 7 years ago

It is possible on devices that support VR mode running Android N or later. Please look at Secure texture video playback as a starting point.

niusounds commented 7 years ago

OK! Thanks for information!

andrewlewis commented 7 years ago

If you're using the Google VR SDK you might also find the sample sdk-videoplayer useful. It shows how to play a video using the secure output path.

niusounds commented 7 years ago

I'm using GearVR Framework which encapsulates native OpenGL calls and provides scene graph implementation for Gear VR and Daydream. I'm developing for Gear VR so cannot use Google VR SDK...