H.265 (HEVC) 是一种视频编码标准,相比于之前的标准 H.264 (AVC),H.265 能够以更高的压缩效率提供相同质量的视频,或者在相同的比特率下提供更好的图像质量。然而,H.265 存在设备兼容性问题。播放器 SDK 包含基于大数据沉淀的 H.265 硬解机型黑名单,可根据机型画像灵活切换软硬解策略,有效避免播放失败、花屏、黑屏等问题。本文为您介绍如何通过播放器 SDK 播放 H.265 视频。
注意
该功能仅高级版支持。请确保您已购买高级版的 License,详见播放器 License。
void vidPlay() async { String vid = "your play vid"; String playAuthToken = "your play auth token"; TTVideoEngineResolutionType? resolutionType = TTVideoEngineResolutionType.TTVideoEngineResolutionTypeHD; TTVideoEngineEncodeType encodeType = TTVideoEngineEncodeType.h264; // 判断当前设备是否支持 H.265,支持则请求 H.265 播放源 var enableH265 = await FlutterTTSDKManager.isSupportH265HardwareDecode(); if (!(enableH265 == null || !enableH265)) { encodeType = TTVideoEngineEncodeType.h265; } // 构建播放源 TTVideoEngineVidSource source = TTVideoEngineVidSource.init( vid: vid, playAuthToken: playAuthToken, resolution: resolutionType, encodeType: encodeType); // 设置播放源 await _player?.setVidSource(source); // 开始播放 await _player?.play(); }
void urlPlay() async { // FlutterTTSDKManager.isSupportH265HardwareDecode(): true 则设置 H.265 播放源 // FlutterTTSDKManager.isSupportH265HardwareDecode(): false 则设置 H.264 播放源 String url = "play url"; String cacheKey = "cache key"; // 构建播放源 TTVideoEngineUrlSource source = TTVideoEngineUrlSource.initWithURL(url, cacheKey); // 设置播放源 await _player?.setUrlSource(source); // 开始播放 await _player?.play(); }