Ibr*_*bal 8 android chromecast widevine custom-receiver
我正在使用Expressplay网站上的接收器应用程序进行chromecast.https://www.expressplay.com/developer/test-apps/#ccplayer.
我已经通过传递许可URL和宽流路径从浏览器中测试了它.它播放视频,意味着接收器工作正常.
当我尝试从Android发送器应用程序播放内容时出现问题.我经过许可URL的JSON对象.
我的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();
}
Run Code Online (Sandbox Code Playgroud)
我猜这个问题可能与在设置licenseUrl时从android播放的情况下的recevier代码有关.
我的接收者代码设置许可证URL如下.
if (event.data.customData && event.data.customData.licenseUrl) {
console.log('setting license URL');
host.licenseUrl = event.data.customData.licenseUrl;
}
Run Code Online (Sandbox Code Playgroud)
event.data.customData.licenseUrl 如果是android,则不会设置许可URL.
从Android发送者播放时的结果是黑屏.
从浏览器发件人播放时播放视频.
在托管视频内容的S3服务器上启用CORS.
谁能说出我做错了什么?
从android没有设置许可证URL传递JSON对象吗?如果是,那么如何解决?
提前感谢您的关心和值得花时间解决我的问题.:)
我发现我的接收器应用程序在event.data.customData从 Android 发送器应用程序连接时未定义。
所以我用了event.data.media.customData
并按如下方式访问密钥:
if(event.data.media.customData['licenseUrl'] !== null){
console.log('setting license URL from mobile');
host.licenseUrl = event.data.media.customData.licenseUrl;
}
Run Code Online (Sandbox Code Playgroud)
就是这样!:)
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |