HlsUrl移动端直播流ios不适配问题

楼主上一篇文章Vue3实现网页Hls Flv直播流播放在后续遇到了ios端不适配的问题,为此,楼主进行了大量的搜索以及Gpt工作。然而就在今天找到了别人遇到了同样的问题,链接如下
ios使用<video>播放hls流

问题所在,是因为hls.js使用了MSE,但是MSE不支持ios,所以hls.js无法在ios设备上成功使用(hls不是你苹果发明的吗)

解决办法,使用<video>标签直接载入视频/直播流URL进行播放即可,但是这种方法在PC上又无法播放了(PC可以使用前文组件)

下面是可以成功在ios上播放的组件源码

<template>
    <div class="playVideo-layout">
      <!-- 播放器 -->
      <div id="app-container" class="video-box">
        <video
          ref="videoElement"
          id="videoElement"
          autoplay
          controls
          muted
          style="width: 100%; height: 100%; object-fit: fill"
        >
        <source>
      </video>
      </div>
    </div>
  </template>


<script>

// import hlsjs from "hls.js";
import {ref , watch,onMounted} from 'vue';
export default {
  name: "Success",

  props:{
      hlsUrl: String,
  },
  
  setup(props) {
    const videoUrl = ref(null);
    const video = document.getElementById("videoElement");

    // 使用 watch 监听 hlsUrl 变化
    watch(() => props.hlsUrl, (newHlsUrl) => {
      console.log("watch hlsUrl is "+ newHlsUrl);
      // video.src = newHlsUrl;
      document.getElementById("videoElement").src = newHlsUrl;
      // show(newHlsUrl); // 在 hlsUrl 变化时执行 show

    });

    onMounted(() => {
      // 在组件挂载后,调用 show 方法
      // console.log("onMounted hlsUrl is "+ props.hlsUrl);
      if(props.hlsUrl){
        video.src = props.hlsUrl;
      }
    });

    return {
      videoUrl,
    };
  },
};

</script>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值