How to use android.drm framework

你。 提交于 2019-12-01 06:56:18

In most DRM scenarios, the Android device would be the client from a DRM point of view, rather than the sever.

In other words the Android device would typically be the playback device which needs to ask a DRM system for a key to view the content.

There is no reason in theory why an Android devices couldn't act as a packager or encrypted for content, but it is not the norm so its not how the DRM framework or example in Android will be set up.

If you do want to see how to play back DRM protected content on the device, then the Exoplayer demo has good working examples.

Take a look at the DefaultDRMSessionManager as a starting point: https://github.com/google/ExoPlayer/blob/d979469659861f7fe1d39d153b90bdff1ab479cc/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java

Update

An example workflow for protected content:

  1. Content is ingested on the server (i.e. loaded or placed on the streaming server somehow)
  2. The content is registered with a DRM license server and a an encryption key requested
  3. When a user requests the video file, the file is packaged into the appropriate streaming protocol for the device (typically MPEG DASH for Android) and the video file is encrypted with the key received from the DRM server.
  4. The device which requested the stream (i.e. the Android device in your case) receives the stream and identifies that it is encrypted. It requests the license key from the license server. On an Android device using Widevine DRM, it must have the URL of the license server included in the player configuration.
  5. The DRM server sends the key securely to the Android device which plays back the content. Neither the key nor the unencrypted content is visible to the app, or even to the OS, as it is played using the DRM system and the devices secure media path.

Streaming servers and DRM servers are generally quite complicated systems and it is unlikely you would want to build either yourself.

For streaming server there are open source examples you can look at and use - e.g.: https://gstreamer.freedesktop.org

If you want to experiment with DRM then you can use clearkey DRM with MPEG DASH which Exoplayer will support. It is not as secure as the regular DRM schemes but it is free so it is worth checking if it meets your needs.

Some encoding services allow you experiment with clearkey set up - see an example here: https://bitmovin.com/tutorials/mpeg-cenc-clearkey-drm-encryption/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!