HarmonyOS 鸿蒙Next中AVPlayer和Video报视频格式不支持
HarmonyOS 鸿蒙Next中AVPlayer和Video报视频格式不支持
https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_fmp4/master.m3u8
这样一个链接,AVplayer和Video都是不支持的。这时为什么呢?
开发者您好,请您参考以下方案:
您的m3u8中GROUP-ID="aud3"的音频资源,为E-AC-3编码的音频码流,由于专利限制,AVPlayer无法解码E-AC-3编码的音频码流。
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=“aud3”,LANGUAGE=“en”,NAME=“English”,AUTOSELECT=YES,DEFAULT=YES,CHANNELS=“6”,URI=“a3/prog_index.m3u8”
建议您采用ijkplayer三方库实现播放您的资源。同时,根据您的描述,您采用该三方库存在卡顿报错问题,请您参考使用示例排查是否有相关步骤错误,或者,为更快定位分析您的问题,您方便的话,麻烦您提过下最小复现demo和报错日志。
日志获取方式如下:
一、先清理日志
1.hdc shell
2.cd data/log/hilog
3.hilog -w clear (清除多余日志)
4.exit 退回到目录
二、复现问题
三、使用命令hdc file recv /data/log/hilog 导出hilog
更多关于HarmonyOS 鸿蒙Next中AVPlayer和Video报视频格式不支持的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
支持的
尊敬的开发者,您好!您的问题已受理,请您耐心等待,感谢您的理解与支持!
尊敬的开发者,您好, 本地手机6.0.1(API21)版本参考AVPlayer完整示例通过设置avPlayer.url为问题描述的地址可以播放视频,video组件使用如下代码也可以播放。未复现格式不支持问题,为尽快定位问题,请提供能复现问题代码和当前开发工具版本(Help->About DevEco Studio)、运行时API版本(File->Project Structure->Project->Basic Info->Compatible SDK)、手机系统版本信息 (设置->关于本机),感谢您的理解与支持。
@Component
@Entry
struct VideoPage {
private controller: VideoController = new VideoController()
build() {
Column() {
Video({
src: 'https://www.example/master.m3u8',
controller: this.controller,
})
.width('100%')
.height(300)
.autoPlay(true)
.objectFit(ImageFit.Contain)
.controls(true)
}
}
}
我是用的模拟器,使用AVPlayer完整示例,使用模拟器。
20版本模拟器:
04-17 19:34:01.605 3856-3856 A03d00/JSAPP com.examp…ayerdemo E AVPlayManager: setAVPlayerCallback AVPlayer state error called.
04-17 19:34:01.606 3856-3856 A03d00/JSAPP com.examp…ayerdemo E AVPlayManager: setAVPlayerCallback Invoke avPlayer failed {“code”:5400103,“name”:“BusinessError”}
21版本模拟器:
能显示出画面,看是画面感觉也比较卡顿。
22版本模拟器:
04-17 19:39:40.006 4745-4745 A03d00/JSAPP com.examp…ayerdemo E AVPlayManager: setAVPlayerCallback AVPlayer state error called.
04-17 19:39:40.008 4745-4745 A03d00/JSAPP com.examp…ayerdemo E AVPlayManager: setAVPlayerCallback Invoke avPlayer failed {“code”:5400106,“name”:“BusinessError”}


在HarmonyOS NEXT中,AVPlayer和Video组件仅支持特定的视频编码与封装格式,如H.264、H.265、MPEG-4(MP4)、WebM(VP8/VP9部分支持)等。若视频使用不支持的编码(如AV1、WMV)或封装容器(如AVI、FLV),会报格式不支持错误。请确认视频编码和容器与系统兼容列表一致,并检查文件完整性。
AVPlayer 和 Video 组件均基于 HarmonyOS Next 系统多媒体框架,对 HLS(m3u8)流的支持依赖于底层媒体引擎对具体封装与编码格式的解析能力。该 Apple 示例流采用的是 fMP4(fragmented MP4)分片 的 HLS,而当前阶段 HarmonyOS Next 优先兼容的是 MPEG-TS 分片、H.264 视频 + AAC 音频 的传统 HLS。若媒体引擎无法识别 fMP4 容器或其中的编码(例如可能包含 HEVC),便会直接返回“格式不支持”。此外,若流含有 FairPlay 等 DRM 加密,也会因系统不具备对应的解密组件而无法播放。简言之,这是 播放器对 HLS 变体的兼容性边界 所致,并非链接失效。


