vue中的video

来源:互联网 发布:上帝在掷骰子吗 知乎 编辑:程序博客网 时间:2024/06/10 01:17

获取当前播放时间:$('video').currentTime

ended 属性返回音频/视频是否已结束。

myVid.ended
返回true/false

paused 属性返回音频/视频是否已暂停。

play() 方法开始播放当前的音频或视频。

pause() 方法停止(暂停)当前播放的音频或视频。

timeupdate当目前的播放位置已更改时ended当目前的播放列表已结束时error当在音频/视频加载期间发生错误时pause当音频/视频已暂停时play当音频/视频已开始或不再暂停时duration返回当前音频/视频的长度(以秒计)


vue

<audio ref="audio" :src="currentSong.url" @play="ready" @error="error" @timeupdate="updateTime"
           @ended="end"></audio>

<div class="progress-wrapper">
            <span class="time time-l">{{format(currentTime)}}</span>
            <div class="progress-bar-wrapper">
              <progress-bar :percent="percent" @percentChange="onProgressBarChange"></progress-bar>
            </div>
            <span class="time time-r">{{format(currentSong.duration)}}</span>
          </div>

methods: {

      ready() {
        this.songReady = true
        this.savePlayHistory(this.currentSong)
      },
      error() {
        this.songReady = true
      },
      updateTime(e) {
        this.currentTime = e.target.currentTime
      },
      format(interval) {
        interval = interval | 0
        const minute = interval / 60 | 0
        const second = this._pad(interval % 60)
        return `${minute}:${second}`
      },

    _pad(num, n = 2) {
        let len = num.toString().length
        while (len < n) {
          num = '0' + num
          len++
        }
        return num
      },

}

如何绑定事件

对照着看,js使用onclick注册事件,angularJS使用ng-click指令注册事件。

step1,使用类似的v-on:click指令

它的特点,首先是“一次绑一个”,这种内联的方式只能一次绑定一个方法,要绑定多个方法,还得使用原生的javascript的原生方法addEventListener方法。然后,指令的限定表达式除了是一个方法名还可以是js语句。第三,它有缩写,"@click"。

step2,methods配置

对应的方法需要在Vue实例中的methods属性中进行定义。

step3:使用特殊变量$event访问原生DOM事件(optional,补充了解)


方法描述addTextTrack()向音频/视频添加新的文本轨道canPlayType()检测浏览器是否能播放指定的音频/视频类型load()重新加载音频/视频元素play()开始播放音频/视频pause()暂停当前播放的音频/视频

HTML5 Audio/Video 属性

属性描述audioTracks返回表示可用音轨的 AudioTrackList 对象autoplay设置或返回是否在加载完成后随即播放音频/视频buffered返回表示音频/视频已缓冲部分的 TimeRanges 对象controller返回表示音频/视频当前媒体控制器的 MediaController 对象controls设置或返回音频/视频是否显示控件(比如播放/暂停等)crossOrigin设置或返回音频/视频的 CORS 设置currentSrc返回当前音频/视频的 URLcurrentTime设置或返回音频/视频中的当前播放位置(以秒计)defaultMuted设置或返回音频/视频默认是否静音defaultPlaybackRate设置或返回音频/视频的默认播放速度duration返回当前音频/视频的长度(以秒计)ended返回音频/视频的播放是否已结束error返回表示音频/视频错误状态的 MediaError 对象loop设置或返回音频/视频是否应在结束时重新播放mediaGroup设置或返回音频/视频所属的组合(用于连接多个音频/视频元素)muted设置或返回音频/视频是否静音networkState返回音频/视频的当前网络状态paused设置或返回音频/视频是否暂停playbackRate设置或返回音频/视频播放的速度played返回表示音频/视频已播放部分的 TimeRanges 对象preload设置或返回音频/视频是否应该在页面加载后进行加载readyState返回音频/视频当前的就绪状态seekable返回表示音频/视频可寻址部分的 TimeRanges 对象seeking返回用户是否正在音频/视频中进行查找src设置或返回音频/视频元素的当前来源startDate返回表示当前时间偏移的 Date 对象textTracks返回表示可用文本轨道的 TextTrackList 对象videoTracks返回表示可用视频轨道的 VideoTrackList 对象volume设置或返回音频/视频的音量

HTML5 Audio/Video 事件

事件描述abort当音频/视频的加载已放弃时canplay当浏览器可以播放音频/视频时canplaythrough当浏览器可在不因缓冲而停顿的情况下进行播放时durationchange当音频/视频的时长已更改时emptied当目前的播放列表为空时ended当目前的播放列表已结束时error当在音频/视频加载期间发生错误时loadeddata当浏览器已加载音频/视频的当前帧时loadedmetadata当浏览器已加载音频/视频的元数据时loadstart当浏览器开始查找音频/视频时pause当音频/视频已暂停时play当音频/视频已开始或不再暂停时playing当音频/视频在已因缓冲而暂停或停止后已就绪时progress当浏览器正在下载音频/视频时ratechange当音频/视频的播放速度已更改时seeked当用户已移动/跳跃到音频/视频中的新位置时seeking当用户开始移动/跳跃到音频/视频中的新位置时stalled当浏览器尝试获取媒体数据,但数据不可用时suspend当浏览器刻意不获取媒体数据时timeupdate当目前的播放位置已更改时volumechange当音量已更改时waiting当视频由于需要缓冲下一帧而停止