利用html5自定义实现播放器代码分享


当前第2页 返回上一页

拖拽代码思路

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

//核心代码示例

var dragDis = 0

var processWidth = xxx //拖拽条总长

$('body').mousedown(function(e) {

    startX = e.clientX

    dragDis = startX - leftInit //leftInit为拖拽条起始点巨屏幕左侧的距离

    dragTarget.css({ //拖拽按钮

        left: dragDis

    })

    dragProcess.css({ //进度条(蓝色进度条)

        width: dragDis

    }) // 令进度条和拖拽按钮渲染在同一位置

    videoSource.pause()

}).mousemove(function(e) {

    moveX = e.clientX

    disX = moveX - startX

    var left = dragDis + disX

    if(left > processWidth) {

        left = processWidth

    } else if(left < 0) {

        left = 0

    }

    dragTarget.css({

        left: left

    })

    dragProcess.css({

        width: left

    })

}).mouseup(function(e) {

    videoSource.play()

    videoSource.currentTime = $('蓝色拖拽条').width() / processWidth * duration //拖拽后计算视频的正确播放位置

})

同理音量的控制与其上行为基本一致,故在源码中作者将音量与进度部分通过不同元素进行判断是进行进度还是音量的拖拽控制。

通过查询视频流状态控制播放前的加载动画

1

2

3

4

5

6

7

8

9

10

11

12

function ifState() {

    var state = videoSource.readyState

    if(state === 4) { //状态为4即可播放

        videoPlayer()

    } else {

        $('.play-sym-wrapper').remove()

        $('body').append('<p class="play-sym-wrapper"><img class="play-sym" src="./images/loading.gif"></p>')

        //添加loading动画

        setTimeout(ifState, 10)

    }

}

setTimeout(ifState, 10)

核心的控制部分已经说完了,有兴趣的同学可以去源码的html中点击播放,其中被迫有很多零碎的需求,比如点击暂停,保存音量等等。整个视频播放器的基础功能实现的还算完善。

以上就是利用html5自定义实现播放器代码分享的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

移动端HTML5页面生成图片解决方案

HTML5播放视频教程

(server-sent events)浅谈h5 中的服务器推送事件

HTML5原生拖拽操作实例讲解

HTML5怎么实现拖拽

HTML5表单元素实例讲解

详解HTML5的video标签的浏览器兼容性增强方案

如何使用canvas画出平滑的曲线?(代码)

HTML5+canvas调用手机拍照功能实现图片上传功能(图文详解上篇)

如何使用插件数字滚动插件numberanimate.js?

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...