ios端使用TCplayer直播播放三秒直接卡顿bug

  1. 查看配置项没问题

    复制代码
     setTcPlayer() {
       let that = this;
       player = new TcPlayer("videoPlayer", {
         live: this.activatPlayType == "livePlay" ? true : false,
         x5_type: "h5",
         x5_fullscreen: true,
         systemFullscreen: true,
         x5_orientation: 1,
         x5_player: true,
         flash: false,
         webrtc: this.liveRTCSrc,
         m3u8: this.liveSrc, //请替换成实际可用的播放地址
         autoplay: false, //iOS 下 safari 浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
         width: that.fun.getPhoneEnv() != 3 ? window.innerWidth : "375", //视频的显示宽度,请尽量使用视频分辨率宽度
         height: this.liveHeight, //视频的显示高度,请尽量使用视频分辨率高度
         wording: {
           2032: "请求视频失败,请检查网络",
           2048: "请求m3u8文件失败,可能是网络错误或者跨域问题"
         },
         controls: "none",
         Flash: false,
         listener: function(msg) {
           // console.log(msg.type);
           if (msg.type == "loadeddata") {
             console.log("loadeddata===============");
             that.resizeH();
             // that.onPlayerPlay();
           }
           if (msg.type == "loadedmetadata") {
             // console.log("loadedmetadata==》》》》》",parseInt(player.video.el.duration));
             that.targetVideo.maxTime = parseInt(player.video.el.duration);
           }
           if (msg.type == "load") {
             timer_2 = setTimeout(() => {
               that.loadedVideoDataOk = true;
             }, 800);
           }
           if (msg.type == "error") {
             console.log("error::视频播放不了.....");
             Toast("该视频出现问题了!");
             that.show = true;
             that.loadedVideoDataOk = true;
             that.$set(that.liveList[that.activeSwiperIndex], "show", true);
           }
           if (msg.type == "play") {
             that.videoPlaying();
             clearInterval(timer_2);
           }
           if (msg.type == "playing") {
             that.songStop = false;
             that.isFirstPlay = true;
             // that.videoPlaying();
           }
           if (msg.type == "pause") {
             that.songStop = true;
           }
           if (msg.type == "timeupdate") {
             that.targetVideo.currentTime = player.video.el.currentTime;
             that.sliderTime = parseInt((that.targetVideo.currentTime / that.targetVideo.maxTime) * 100);
           }
         }
       });
     },

对比官方文档没发现什么问题

  1. 最后在代码里查看 发现初始化两个palyer播放器;考虑ios直播流时间戳时间比较严格;两个同时初始化渲染;会出现此问题;注释掉另一个可以正常播放。
相关推荐
imLix11 小时前
RunLoop 实现原理
前端·ios
归辞...17 小时前
「iOS」————设计架构
ios·架构
i紸定i20 小时前
解决html-to-image在 ios 上dom里面的图片不显示出来
前端·ios·vue·html·html-to-image
phantom_1111 天前
Cursor 分析 bug 记录
bug·cursor
YungFan1 天前
iOS26适配指南之UIButton
ios·swift
红橙Darren2 天前
手写操作系统 - 编译链接与运行
android·ios·客户端
鹏多多.2 天前
flutter-使用device_info_plus获取手机设备信息完整指南
android·前端·flutter·ios·数据分析·前端框架
麦兜*2 天前
【swift】SwiftUI动画卡顿全解:GeometryReader滥用检测与Canvas绘制替代方案
服务器·ios·swiftui·android studio·objective-c·ai编程·swift
Direction_Wind3 天前
Flinksql bug: Heartbeat of TaskManager with id container_XXX timed out.
大数据·flink·bug