去掉视频字节为0的video ,Uncaught (in promise) DOMException: Failed to load because no supported source was f

Uncaught (in promise) DOMException: Failed to load because no supported source was found.

出现上边的错误一方面是从后台获取到的video的字节数是0,是一个空的视频

判断视频是否可以下载,在项目中遇到一个问题,从手机端上传到数据库的视频,有的是0字节的视频,根本无法播放,控制台报错:Uncaught (in promise) DOMException: Failed to load because no supported source was found.

解决办法:

判断视频的networkState,如果值等于3,则不播放,跳过
- Media.networkState; //0.此元素未初始化 1.正常但没有使用网络 2.正在下载数据 3.没有找到资源

判断视频的资源长度,如果为NAN,那就是无法播放,但是这个有可能受网络状态的限制,在网络不好的时候,获取视频的时长需要一定的时间,所以,这个判断并不是很准确。

  • Media.duration; //当前资源长度 流返回无限

我用的是vue写的项目:则用ev.target来获取视频的状态


 videoChanging: function (ev) {
if (!this.$refs.video) { return }
//更换video的src
 if(this.videosrcTwo){
var status = this.$refs.video.ended
if(status){
if(this.$refs.video.src == this.videosrcOne){
 this.$refs.video.src = this.videosrcTwo
console.log('ev.target.networkState', ev.target.networkState)
  console.log('ev.target.duration', ev.target.duration)
            this.$refs.video.play()
          }else{
            this.$refs.video.src = this.videosrcOne
          }
        }
        if(ev.target.ended){
          this.playing = false
          // this.replay =true
        }
      } else {
        this.isLoop = true
      }

在上边添加一行代码就可以:
if(ev.target.networkState == 3) return this.$refs.video.src = this.videosrcOne
以下是我获取的当前播放视频的结果:这种结果都会无法播放`
ev.target.networkState 3
ev.target.duration NaN

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lancnn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值