DCloud_UNI_GSQ
DCloud_UNI_GSQ
  • 发布:2019-01-02 21:04
  • 更新:2024-04-01 16:18
  • 阅读:39952

uni-app在H5平台使用video.js,以及播放m3u8格式的视频

分类:uni-app
  1. 创建模板文件index.html,在模版内引用video.js
<!DOCTYPE html>  
<html lang="zh-CN">  
    <head>  
        <meta charset="utf-8">  
        <meta http-equiv="X-UA-Compatible" content="IE=edge">  
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">  
        <title>  
            <%= htmlWebpackPlugin.options.title %>  
        </title>  
        <script>  
            document.addEventListener('DOMContentLoaded', function() {  
                document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'  
            })  
        </script>  
        <link rel="stylesheet" href="<%= htmlWebpackPlugin.options.baseUrl %>static/index.css" />  
        <link href="https://unpkg.com/video.js/dist/video-js.min.css" rel="stylesheet">  
        <script src="https://unpkg.com/video.js/dist/video.min.js"></script>  
    </head>  
    <body>  
        <noscript>  
            <strong>Please enable JavaScript to continue.</strong>  
        </noscript>  
        <div id="app"></div>  
        <!-- built files will be auto injected -->  
    </body>  
</html>
  1. 在manifest.json内配置index.html路径
  2. 在vue文件内使用video.js初始化播放器
<template>  
    <view class="content">  
        <view class="video-js" ref="video">  

        </view>  
    </view>  
</template>  

<script>  
    export default {  
        onReady() {  
            // #ifdef H5  
            var video = document.createElement('video')  
            video.id = 'video'  
            video.style = 'width: 300px;height: 150px;'  
            video.controls = true  
            var source = document.createElement('source')  
            source.src = 'http://yf.ugc.v.cztv.com/cztv/ugcvod/2018/04/14/A98CD7B26B06D94A5CEA56AA7D723572/h264_800k_mp4.mp4_playlist.m3u8'  
            video.appendChild(source)  
            this.$refs.video.$el.appendChild(video)  
            videojs('video')  
            // #endif  
        },  
        methods: {  

        }  
    }  
</script>  

<style>  

</style>

注意事项

  1. 示例工程见附件
  2. 如果视频源格式为m3u8,m3u8文件可能遇到跨域问题,请自行百度
9 关注 分享
Trust Stalker丶 dub 3***@qq.com 子衣 锦笑江湖 h***@163.com 2***@qq.com 9***@qq.com

要回复文章请先登录注册

SMGB

SMGB

我另外找的直播M3U8,就一个黑框,没画面,你得地址会报错
2021-03-11 13:40
SMGB

SMGB

啥也不是,没反应。
2021-03-11 13:39
t***@qq.com

t***@qq.com

video-js 还是有一些问题:
1,突然暂停.资源未播放完就突然暂停,再点击播放页没有用,不能继续播放,出现再我的华为mate 20 X手机以及华为mate 20手机.而比较老旧的手机 红米note 4x则能把m3u8视频播放完成.
2.在我的红米note 4x横屏播放完成后,视频底部的 控制条的位置往下移动差不多看不见了,勉强可以点击退出全屏.

以上两个问题严重.

缺陷方面,videojs定制化功能似乎有点少,比如设置 播放的 分辨率,画面上没有暂停功能,只能点击控制条上的 暂停按钮,看了一些网上教程,可以设置 暂停时候显示播放按钮(默认暂停是后画面上没有播放按钮的).

总结就是 videojs对手机端播放并不是友好,h5播放器方面只有过几天再试试dplayer.js了.到时候再来分享经验.
2021-02-05 17:49
叽哩呱啦

叽哩呱啦

vue 中 video 组件是不是不能用 , nvue 中能用,不知道什么情况了
2021-01-17 17:02
h***@163.com

h***@163.com

感谢楼主提供的demo。
2020-12-24 19:49
说下嘛

说下嘛

大哥哥,app上能不能播放M3U8的视频
2020-10-09 11:40
子衣

子衣

app上面不能播放,h5上可以,
播放控件不好搞
2020-09-28 11:10
子衣

子衣

播放按钮如何修改
2020-09-23 10:03
1***@qq.com

1***@qq.com

回复 kimshell :
我也遇到过 视频的url换成静态的就可以 想找动态切换视频的方法
2020-09-11 10:42
HJJ8

HJJ8

报错videojs is not defined 怎么解决
2020-08-25 11:36