Flutter中video_player是否支持iOS端master.m3u8多分辨率播放?
问题解答
1. video_player是否不支持master.m3u8?
是的,官方的video_player包不支持HLS master playlist(多码率自适应播放列表),它仅能解析并播放单码率的媒体播放列表(即你单独加载的子播放列表)。这就是你加载master.m3u8时无法正常工作,但单独加载子列表可以的核心原因。
2. Flutter中支持master.m3u8的替代播放器
以下是几个可解决该问题的Flutter播放器:
- flutter_vlc_player:基于VLC媒体库开发,完全支持HLS自适应码流(包括master.m3u8),跨平台兼容iOS/Android,还支持几乎所有主流视频格式,具备完整的播放控制、字幕支持等功能。
- better_player:作为
video_player的增强封装,新增了对HLS master playlist的支持,同时保留video_player的易用性,额外提供缓存管理、进阶播放控制等功能。 - ijkplayer_flutter:基于ijkplayer(FFmpeg封装的播放器)开发,支持HLS自适应码流,自定义性强,适合对播放底层有定制需求的场景。
附:格式化后的master.m3u8代码示例
final masterPlaylistContent = ''' #EXTM3U #EXT-X-VERSION:10 #EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2" ${fixedPlaylistUrls['${name}_0_playlist.m3u8']} #EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360,CODECS="avc1.64001f,mp4a.40.2" ${fixedPlaylistUrls['${name}_1_playlist.m3u8']} ''';
内容的提问来源于stack exchange,提问作者dvsmo
相关产品推荐
相关产品推荐

