HarmonyOS 鸿蒙Next Video组件多次切换不可播放的m3u8播放地址后会直接闪退,mp4地址不会

发布于 1周前 作者 h691938207 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Video组件多次切换不可播放的m3u8播放地址后会直接闪退,mp4地址不会 页面一点击黑色块跳转至页面二。在页面二内重复点击蓝色块切换可播放MP4地址时一切正常,点击红色块切换不可播放m3u8地址,多次之后直接闪退。

具体可参考附件视频,点击红色块切换不可播放的m3u8地址约在13秒时闪退,随后点击蓝色块切换可播放的MP4地址,直至58秒停止点击时仍然正常。

index.ts

import { router } from '@kit.ArkUI'

@Component
export struct ReportComponent {

  build() {
    Column(){
      List(){
        ListItem(){
          Row()
            .width(400)
            .height(50)
            .onClick(()=>{
              this.jumpPage()
            })
            .backgroundColor(Color.Black)
        }
        .width('100%')
        .height('200%')
      }
      .width('100%')
      .height('100%')
    }
    .width('100%')
    .height('100%')
  }

  jumpPage(){
    router.pushUrl({url:'pages/Page2'})
  }
}

Page2.ts

@Component
struct Page2 {

  videoArray = [
    "https://live-ws.kksmg.com/live/stream1/playlist.m3u8?wsSecret=6b4ca6ec4bd3f7d7b5841029f8ae9fe1&wsTime=1719383405",
    "https://live-volc.kksmg.com/live/stream1/index.m3u8?volcSecret=35b0e079526cfdff48453600664aa88b&volcTime=1719383405"
  ]

  videoArray2 = [
    "https://mediaplay.kksmg.com/2023/07/17/h264_720p_600k_53867-smgnews-20230717172000-4800-570416-600k_mp4.mp4",
    "https://mediaplay.kksmg.com/2023/07/17/h264_720p_600k_53867-smgnews-20230717172000-4800-570417-600k_mp4.mp4"
  ]

  @State index:number = 0
  @State index2:number = 0

  build() {
    Column(){
      Video({src:this.videoArray[this.index]})
        .width('100%')
        .height(200)
        .autoPlay(true)

      Row()
      .backgroundColor(Color.Red)
      .width('100%')
      .height(50)
      .onClick(()=>{
        this.changeVideoLink()
      })

      Video({src:this.videoArray2[this.index2]})
        .width('100%')
        .height(200)
        .autoPlay(true)

      Row()
        .backgroundColor(Color.Blue)
        .width('100%')
        .height(50)
        .onClick(()=>{
          this.changeVideoLink2()
        })
    }
    .height('100%')
    .width('100%')
  }

  changeVideoLink(){
    this.index += 1
    if (this.index == 2) {
      this.index = 0
    }
  }

  changeVideoLink2(){
    this.index2 += 1
    if (this.index2 == 2) {
      this.index2 = 0
    }
  }
}

更多关于HarmonyOS 鸿蒙Next Video组件多次切换不可播放的m3u8播放地址后会直接闪退,mp4地址不会的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

可以升级之后再尝试

更多关于HarmonyOS 鸿蒙Next Video组件多次切换不可播放的m3u8播放地址后会直接闪退,mp4地址不会的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS鸿蒙Next Video组件在多次切换m3u8播放地址后出现的闪退问题,而mp4地址无此现象,可能的原因及解决方案如下:

原因推测:

  1. 内存泄漏:在频繁切换m3u8地址时,可能存在内存未正确释放的情况,导致内存累积消耗直至应用崩溃。
  2. 解码器问题:m3u8作为HLS(HTTP Live Streaming)流格式,其解码处理可能较mp4更为复杂,组件在处理多次切换时可能遇到解码器状态管理不当的问题。
  3. 资源管理不当:组件在切换播放源时未能正确管理音视频资源,如未释放旧资源即尝试加载新资源,导致冲突或资源耗尽。

解决方案尝试:

  • 优化资源管理:确保在切换播放地址前,正确释放当前播放器的所有资源。
  • 更新组件版本:检查是否有鸿蒙Next Video组件的更新版本,新版本可能修复了此类问题。
  • 异常捕获:在切换播放地址的代码逻辑中加入异常捕获机制,记录并分析异常信息,以便定位具体问题。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部