我正在使用 Expressplay 网站上的接收器应用程序进行 chromecast。https://www.expressplay.com/developer/test-apps/#ccplayer。
我已经通过将许可证 URL与Widevine 流路径一起从浏览器中对其进行了测试。它播放了视频,意味着接收器工作正常。
当我尝试从 android 发件人应用程序播放内容时出现问题。我在json对象中传递许可证 URL 。
我的android发件人代码如下。
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/?ExpressPlatToken=****");
}catch (JSONException e){
Log.e(null,"Failed to add description to the json object", e);
}
return new MediaInfo.Builder("stream path.mpd")
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
.setContentType("video/mp4")
.setMetadata(movieMetadata)
.setCustomData(jsonObj)
//.setStreamDuration(player.getDuration())
.build();
}
我猜这个问题可能与在设置licenseUrl时从 android 播放的情况下接收者的代码有关。
我的接收器代码设置许可证 URL 如下。
if (event.data.customData && event.data.customData.licenseUrl) {
console.log('setting license URL');
host.licenseUrl = event.data.customData.licenseUrl;
}
event.data.customData.licenseUrl
如果是 android,则未设置许可证 URL。
从 android sender 播放时的结果是黑屏。
从浏览器发件人播放时播放视频。
在托管视频内容的 S3 服务器上启用了CORS 。
谁能告诉我我做错了什么?
从 android 传递的 JSON 对象是否没有设置许可证 URL?如果是,那么如何解决它?
预先感谢您对我的问题的关注和宝贵的时间。:)