gpt4 book ai didi

android - DRM WideVine 视频无法从 Android Cast Sender 应用程序播放

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:42 25 4
gpt4 key购买 nike

我正在使用以下cast receiver

当我将我的 android 发送器连接到 chromecast 设备时,它显示黑屏并且从不播放视频。

https://github.com/googlecast/CastReferencePlayer

我在接收器中为 widevine 设置 licenseUrl 如下:

sampleplayer.CastPlayer.prototype.preloadVideo_ = function(mediaInformation) {
this.log_('preloadVideo_');
var self = this;
var url = mediaInformation.contentId;
var protocolFunc = sampleplayer.getProtocolFunction_(mediaInformation);
if (!protocolFunc) {
this.log_('No protocol found for preload');
return false;
}
var host = new cast.player.api.Host({
'url': url,
'mediaElement': self.mediaElement_
});
host.onError = function() {
self.preloadPlayer_.unload();
self.preloadPlayer_ = null;
self.showPreviewModeMetadata(false);
self.displayPreviewMode_ = false;
self.log_('Error during preload');
};
host.licenseUrl = event.data.customData.licenseUrl;
self.preloadPlayer_ = new cast.player.api.Player(host);
self.preloadPlayer_.preload(protocolFunc(host));
return true;
};

host.licenseUrl = event.data.customData.licenseUrl;

我将它托管在一个在开发者控制台上注册的 https 服务器上。

我将自定义数据作为 json 对象中的 licenseUrl 传递。

我的安卓发送器设置媒体信息的代码如下。

private MediaInfo buildMediaInfo() {
MediaMetadata movieMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);
movieMetadata.putString(MediaMetadata.KEY_SUBTITLE, "Subtitle");
movieMetadata.putString(MediaMetadata.KEY_TITLE, "Title");
jsonObj = new JSONObject();
try{
jsonObj.put("licenseUrl","https://wv.test.expressplay.com/hms/wv/rights/?ExpressPlayToken=token-value");
}catch (JSONException e){
Log.e(null,"Failed to add description to the json object", e);
}
/*drmModel.getData().getStreamURL()*/
return new MediaInfo.Builder("https://pathOfMystream.mpd")
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
.setContentType("application/dash+xml")
.setMetadata(movieMetadata)
.setCustomData(jsonObj)
.setStreamDuration(player.getDuration()*1000)
.build();
}
  • 还需要进行哪些更改?

  • 我需要编辑接收器吗?如果是,那么需要进行哪些编辑?

  • customData中的字符串名称"licenseUrl"是否需要
    变了?

  • 在托管视频内容的 S3 服务器上启用了 CORS

求助!我被困在这里一个多星期了。

谢谢。

最佳答案

我发现 event.data.customData 在从 android 发件人应用程序连接时未定义。

所以我使用了event.data.media.customData

然后按如下方式访问 key :

if(event.data.media.customData['licenseUrl'] !== null){
console.log('setting license URL from mobile');
host.licenseUrl = event.data.media.customData.licenseUrl;
}

关于android - DRM WideVine 视频无法从 Android Cast Sender 应用程序播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45562064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com