HDR(High Dynamic Range,高动态范围 ) 视频,相比普通 SDR(Standard Dynamic Range)视频拥有更高的色深、更广的动态范围和更强的色彩表现力,使得画面更真实、更有层次,很直观的提升视频画质,从而有效提升人们的观影感受。本文为您介绍使用点播 SDK 时如何播放 HDR 视频。
mVideoEngine.isSupportHDR()
方法,返回值为 true, 设备是支持 HDR。SurfaceView
播放视频。设置 HDR 数据源播放,实现的代码示例如下所示。
final String vid = "video id"; // 视频源与 vid 必须一一对应 final String url = "http://www.example.com/hdr.mp4"; // 设置 HDR 视频资源 url final String cacheKey = TTVideoEngine.computeMD5(url); // 1.组装资源 StrategySource directUrlSource = new DirectUrlSource.Builder() .setVid(vid) .addItem(new DirectUrlSource.UrlItem.Builder() .setUrl(url) .setCacheKey(cacheKey) .build()) .build(); // 2.设置播放源 ttVideoEngine.setStrategySource(directUrlSource); // 3.播放 ttVideoEngine.play()
说明
应用客户端需要从服务端请求 HDR 源。服务端需要在签发临时播放 Token 中设置 HDRDefinition
,具体请见以下文档:
切换到 HDR 档位的代码示例如下所示。
ttVideoEngine.configResolution(High_HDR);
Resolution HDR 档位枚举如下表所示。
枚举值 | 分辨率 | 描述 |
---|---|---|
Standard_HDR | 360P | 标清 HDR |
High_HDR | 480P | 高清 HDR |
SuperHigh_HDR | 720P | 超清 HDR |
ExtremelyHigh_HDR | 1080P | 1080P HDR |
TwoK_HDR | 2K | 2K HDR |
FourK_HDR | 4K | 4K HDR |
说明
详情请参见基础功能接入中获取清晰度部分。
示例代码如下:
ttVideoEngine.setVideoInfoListener(new VideoInfoListener() { @Override public boolean onFetchedVideoInfo(VideoModel videoModel) { // 获取视频数据成功回调 Log.v("VideoPlay", "onFetchedVideoInfo " + videoModel); if (videoModel == null) return false; // 获取当前 VideoModel 的清晰度数组,可用于清晰度列表展示 Resolution[] resolutions = ttVideoEngine.supportedResolutionTypes(); return false; } });
判断某清晰度是否为 HDR,示例代码如下:
/** 判断是否是 HDR 档位清晰度 @param resolution 清晰度 */ private boolean isHDRResolution(Resolution resolution) { return resolution.toString(TYPE_VIDEO).contains("HDR"); }