HarmonyOS 鸿蒙Next中Video播放组件播放线上视频失败,ai说是渲染出错。

HarmonyOS 鸿蒙Next中Video播放组件播放线上视频失败,ai说是渲染出错。

在使用Video播放组件播放视频时,本地视频可以播放,但是线上视频播放失败。ohos.permission.INTERNET权限已经配置好了,网址可以在浏览器上正常播放。

ai说是界面渲染出现了问题,这个该怎么解决?

代码如下:

@Entry
@Component
struct PageVideo {
  @State message: string = 'Hello World';
  vdUrl: string = 'https://vd3.bdstatic.com/mda-pmj5ajqd7p4b6pgb/576p/h264/1703044058699262355/mda-pmj5ajqd7p4b6pgb.mp4?auth_key=1703138418-0-0-618ea72b33be241c96c6cff86c06e080&bcevod_channel=searchbox_feed&cr=1&cd=0&pd=1&pt=4&logid=0018430194&vid=9762003448174112444&abtest=all'
  previewUris: Resource = $r('app.media.foreground')

  build() {
    Row() {
      Tabs() {
        TabContent() {
          Column({ space: 20 }) {
            Video({
              src: this.vdUrl,
              previewUri: this.previewUris
            })
            .onPrepared(() => {
              console.info("视频准备就绪");
            })
            .onUpdate((event) => { // 更新事件回调
              console.log("ken", "Video update.");
            })
            .onPrepared((event) => { // 准备事件回调
              console.log("ken", "Video prepared.");
            })
            .onError(() => { // 失败事件回调
              console.log("ken", "Video error.");
            })
            .onStop(() => { // 停止事件回调
              console.log("ken", "Video stopped.");
            })
            .width('100%')
            .aspectRatio(1.4)

          }
          .width('100%')
        }.tabBar('在线视频')

        TabContent() {
          Column({ space: 20 }) {
            Video({
              src: $rawfile('dd.mp4'),
              previewUri: this.previewUris
            })
            .width('100%')
            .aspectRatio(1.4)
          }
        }.tabBar('本地视频')
      }
    }
    .width('100%')
  }
}

错误如下:

cke_3175.png

cke_11007.png


更多关于HarmonyOS 鸿蒙Next中Video播放组件播放线上视频失败,ai说是渲染出错。的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

本地测试提供的demo可以正常播放网络视频,麻烦提供一下运行时SDK版本及手机版本,方便定位问题,谢谢支持与理解。

更多关于HarmonyOS 鸿蒙Next中Video播放组件播放线上视频失败,ai说是渲染出错。的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


确保真机/或模拟器联网正常。请使用真机播放。模拟器某些版本可能会出现问题。

在HarmonyOS Next中,Video组件播放线上视频失败可能是由于以下原因:

  1. 视频格式不支持,鸿蒙Next支持主流格式如MP4/H.264,但某些编码参数可能不兼容
  2. 网络权限未正确配置,需检查config.json中ohos.permission.INTERNET权限声明
  3. 视频服务器未正确响应HTTP请求,可尝试使用抓包工具确认服务器返回状态码
  4. 安全策略限制,鸿蒙Next对非HTTPS链接可能有更严格的访问控制
  5. 视频组件初始化参数错误,检查initialPlaybackTime等属性设置,

根据提供的代码和错误信息,线上视频播放失败可能有以下几个原因:

  1. 网络请求问题:虽然配置了INTERNET权限,但可能需要检查网络请求是否被拦截。建议在onError回调中打印具体错误信息:
.onErr((err) => {
  console.error("Video error:", JSON.stringify(err));
})
  1. 视频格式兼容性:HarmonyOS Next对某些视频编码格式支持有限,特别是来自第三方源的视频。可以尝试以下方法:
  • 使用标准H.264编码的MP4视频
  • 确保视频不包含DRM保护
  1. HTTPS证书问题:如果视频源使用自签名证书,可能会导致播放失败。可以尝试:
Video({
  src: this.vdUrl,
  previewUri: this.previewUris,
  httpHeaders: {
    'User-Agent': 'HarmonyOS'
  }
})
  1. 视频源限制:百度云视频链接可能有防盗链措施,建议:
  • 检查URL是否包含时效性参数(如auth_key)
  • 尝试其他公开测试视频源
  1. 渲染问题解决方案:
  • 确保Video组件有明确的宽高设置
  • 尝试先加载预览图再加载视频
  • 检查设备是否支持硬件加速

建议先通过onError回调获取具体错误代码,再针对性解决。

回到顶部