问题描述: 使用Brightcove视频播放器在Android上播放启用DRM的视频时,会遇到播放失败的问题。这是由于Brightcove视频播放器需要使用Widevine DRM来播放启用了DRM的视频,但是默认情况下Widevine DRM并未集成到Android系统中。
解决方案: 为了让Brightcove视频播放器能够在Android上播放启用DRM的视频,需要集成Widevine DRM到你的Android应用程序中。
在你的Android应用程序的build.gradle文件中添加以下依赖项:
dependencies {
implementation 'com.google.android.exoplayer:exoplayer-core:<版本号>'
implementation 'com.google.android.exoplayer:exoplayer-drm:<版本号>'
implementation 'com.google.android.exoplayer:exoplayer-ui:<版本号>'
}
其中,<版本号>代表ExoPlayer库的版本号。请确保使用与Brightcove视频播放器版本兼容的ExoPlayer库版本。
然后,在你的应用程序的代码中,你需要创建一个SimpleExoPlayer,并使用DefaultHttpDataSourceFactory和DefaultDrmSessionManager来设置Widevine DRM。
以下是示例代码:
String userAgent = Util.getUserAgent(this, "your-application-name");
DefaultHttpDataSourceFactory httpDataSourceFactory = new DefaultHttpDataSourceFactory(userAgent);
DefaultDrmSessionManager drmSessionManager = new DefaultDrmSessionManager.Builder()
.setUuidAndExoMediaDrmProvider(C.WIDEVINE_UUID, FrameworkMediaDrm.DEFAULT_PROVIDER)
.build(new HttpDataSource.Factory() {
@Override
public HttpDataSource createDataSource() {
return httpDataSourceFactory.createDataSource();
}
});
SimpleExoPlayer player = new SimpleExoPlayer.Builder(this)
.setMediaSourceFactory(new DefaultMediaSourceFactory(new DefaultDataSourceFactory(this, httpDataSourceFactory)))
.setDrmSessionManager(drmSessionManager)
.build();
现在,你可以使用这个SimpleExoPlayer来播放启用DRM的视频,Brightcove视频播放器也可以使用它来播放DRM视频了。
总之,为了让Brightcove视频播放器在Android上播放启用DRM的视频,你需要集成Widevine DRM到你的应用程序中。通过创建一个SimpleExoPlayer并设置DefaultDrmSessionManager和DefaultHttpDataSourceFactory,你可以在你的应用程序中实现Widevine DRM并