video插件播放m3u8格式视频(存原生)

这篇具有很好参考价值的文章主要介绍了video插件播放m3u8格式视频(存原生)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

video插件播放m3u8格式视频(存原生)

这里使用原生的javascript实现m3u8格式视频播放。

使用了包括video.min.js库和HLS插件。

1-基础使用

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Video.js HLS Example</title>
  	<!-- add dependency -->
    <link href="https://vjs.zencdn.net/7.7.6/video-js.css" rel="stylesheet" />
    <script src="https://vjs.zencdn.net/7.7.6/video.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/videojs-contrib-hls@5.15.0/dist/videojs-contrib-hls.min.js"></script>
</head>
<body>
  	<!-- create viedo element -->
    <video 
    	id="my-video"
      class="video-js" 
      width="1280" 
      height="720"
    	data-setup='{"autoplay": true, "controls": false, "preload": "auto", "fluid": false, "controlBar": false}'
    >
    	<source src="#" type="application/x-mpegURL">
    </video>
    <script>
      var url = 'https://36689.live-vod.cdn.aodianyun.com/m3u8/0x0/aqes_36689.aqes0.1628058327/aqes_36689.aqes0.1628058327.m3u8';
      // 页面加载完毕后执行播放逻辑,在之前可以异步获取视频播放url
      window.onload = function() {
        var player = videojs('my-video');
        player.src({src: url, type: 'application/x-mpegURL'})
      	player.play();
      }
    </script>
</body>
</html>

在上面代码中,首先引入了video.min.js库和对应的播放器样式video-js.css,还引入了videojs-contrib-hls.min.js库(引入顺序考虑优先放到页面加载之前)。

之后,创建一个video标签,并指定source的src属性为一个占位地址,如果不给一个占位地址,在后面动态赋值src时会导致游览器报错;这里关于视频播放的一些配置放到了data-setup中(json的格式),具体含义如下:

  • autoplay:是否自动播放
  • controls:是否现实进度条操作栏
  • preload:设置为auto,表示自动加载视频
  • fluid:是否自适应父容器大小
  • controlBar: 设置为false,表示不显示控制栏目

注意:

autoplay属性需要在用户与页面进行过交互后才能生效,以保护用户体验和隐私。因此,如果需要实现完全自动播放,可以考虑使用其他解决方案,例如在用户点击页面时触发播放。

最后,使用JavaScript代码创建一个videojs的实例,并动态给予视频播放地址,再调用play()方法开始播放视频。

需要注意的是,HLS插件需要在支持MSE(Media Source Extensions)和HLS的浏览器中才能正常工作。如果浏览器不支持这些功能,可以考虑使用其他的插件或库来播放m3u8视频格式。

2-如何切换播放地址

在每次切换播放下一个视频时,一定需要销毁上一个播放实例,即使用 player.dispose() 方法。

player.dispose() 该方法会销毁videojs实例以及其相关的DOM元素和事件监听器,从而将视频播放器还原为初始状态。

按实际情况判断,一般有两种情况需要进行播放实例销毁,一是视频需要切换的时候(用户主动执行的操作的情况);二是视频播放完成的时候。

第一种情况只需要监听用户进行对应的按钮操作的时候即可,比较简单。

第二种情况可以在视频播放之后,添加监听player播放实例上ended事件,再该事件中去执行播放的销毁。

// ...
    <script>
      var url = 'https://36689.live-vod.cdn.aodianyun.com/m3u8/0x0/aqes_36689.aqes0.1628058327/aqes_36689.aqes0.1628058327.m3u8';
      // 页面加载完毕后执行播放逻辑,在之前可以异步获取视频播放url
      window.onload = function() {
        var player = videojs('my-video');
        player.src({src: url, type: 'application/x-mpegURL'})
      	player.play();
        
        // 监听播放完成事件,执行播放实例销毁
        player.on('ended', function() {
        	player.dispose();
        });
      }
    </script>
// ...

3-如何通过player实例控制视频基础操作

// ...
    <script>
    	var player = videojs('my-video');
    	player.play(); // 自动播放
      player.currentTime(10); // 快进到10秒
      player.currentTime(player.currentTime() - 5); // 快退5秒
      player.pause(); // 暂停播放
    </script>
// ...

上面的代码中,通过设置播放实例下currentTime方法实现播放的快进和快退,该方法接受一个参数,表示设置的时间点,如果不传参数,表示获取当前视频播放的时间点。

currentTime方法再不接受参数的时候,可以实现快退的方法。

设置pause的方法可以实现视频暂停的方法。

4-如何实现完全自动播放的功能

在HTML5标准中,自动播放的行为是被禁止的,如果播放器被设置为自动播放,则会被浏览器禁止。这是出于用户体验和减轻带宽压力等方面的考虑。

但在某些情况下,我们仍然希望实现自动播放,因此可以考虑下面的实现方法。

一、用户操作触发自动播放:

可以监听页面加载完成事件,在页面加载完成后触发播放按钮的点击事件,从而触发自动播放。示例代码如下:

var player = videojs('my-video');
player.ready(function() {
  var promise = player.play();
  if (promise !== undefined) {
    promise.then(function() {
      // 自动播放成功
    }).catch(function(error) {
      // 自动播放失败,需要用户手动触发播放
      player.on('play', function() {
        player.play();
      });
    });
  }
});

二、Muted自动播放

可以将视频设置为静音,从而规避浏览器自动播放的限制。示例代码如下:

var player = videojs('my-video');
player.muted(true);
player.play();

需要注意的是,静音自动播放可能会被用户感知到,并影响用户体验。

三、自动播放和手动播放切换(不适用)

可以通过监听用户的操作,从而判断是否需要自动播放。例如,在用户第一次点击播放按钮后,取消静音并自动播放。示例代码如下:文章来源地址https://www.toymoban.com/news/detail-540727.html

var player = videojs('my-video');
player.on('play', function() {
  player.muted(false);
  player.off('play'); //取消对播放的监听
});
player.play();

到了这里,关于video插件播放m3u8格式视频(存原生)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue项目中使用m3u8格式播放大视频

    网站中播放大视频时经常卡顿,无法顺利播放,在查找解决方案时发现很多文章建议使用m3u8流媒体播放代替MP4播放,做了下测试,现总结记录下测试过程中遇到的问题与解决办法。 1.使用ffmpeg做视频转换 1)下载ffmpeg  FFmpeg github 2)在环境变量path中加入配置,以便在控制台使

    2024年02月09日
    浏览(40)
  • 原生小程序实现视频监控(m3u8格式)

    本文主要实现实时播放监控视频,基于原生微信小程序实现 1、在.wxml文件代码,视频一定要写宽高,不然可能显示不出来,以下属性介绍 src:视频地址, controls:是否显示默认播放控件(播放/暂停按钮、播放进度、时间) binderror: 视频播放出错时触发 show-center-play-btn:是

    2023年04月08日
    浏览(24)
  • vue2 使用 vue-video-player 播放m3u8 流地址视频

    安装插件  : 注意需要引入  videojs-contrib-hls ,否则无法播放hls流文件  main.js 引入 代码内引入: 注意点:    1.type: \\\'application/x-mpegURL\\\' ,否则无法播放流文件  2.aspectRatio: \\\'16:9\\\',  宽高比需要进行设置, 若没有进行设置,会出现黑边过高或者过宽的问题 常用API方法:

    2024年02月07日
    浏览(33)
  • 【vue】前端页面点击按钮弹窗播放m3u8格式视频

    最终效果: 1.表格操作列 2.initVideo方法 3.弹出层代码 4.showAll_dialog样式 5.第2步跳转的video.html页面代码,用dplayer播放的,放在项目根目录的public文件夹即可

    2024年02月04日
    浏览(37)
  • 在vue中使用dplayer播放hls m3u8格式视频

    Dplayer 官方文档地址 Dplayer官方地址 虽然在vue中有vue-dplayer但却没有对hls进行很好的支持 所以建议还是使用Dplayer 在组件中引入 播放m3u8格式的视频需要框选部分 – 建议查看官方文档MSE支持 切换视频 切换视频需要用到 switchVideo() api 方便大家复制 部分片段

    2024年02月13日
    浏览(24)
  • videojs-flvjs:video.js + flv.js播放m3u8和flv视频

    videojs-flvjs是video.js的扩展,让video.js支持flv.js播放器,可以在video.js的techOrder里配置flvjs播放器。 下面做了一个切换m3u8和flv直播流的简易工具: https://mister-ben.github.io/videojs-flvjs/ https://blog.csdn.net/little__SuperMan/article/details/89203270/

    2023年04月16日
    浏览(37)
  • vue使用vue-video-player实现web视频直播展示m3u8格式

    最近有一个需求,就是web展示摄像头的实时画面,mentor让我先探索探索,所以我先测试一些小demo。 这里边个人想了一下啊,还是比较复杂的,包含推流和拉流等操作,还有延迟的问题要解决。 自己主要负责前端,所以先用vue-video-player播放了一下本地的视频,熟悉一下功能,

    2023年04月22日
    浏览(39)
  • android原生MediaPlayer播放本地的m3u8

    遇到某个需求,需要播放百度网盘的视频。但是通过百度网盘的sdk获取到的视频url是由若干个ts片段组成的m3u8播放源。然后把这个m3u8的播放源放在本地,也就是说m3u8是一个本地播放源。那么如何去播放呢?这边引进一个http轻量级的服务器NanoHttpd。 目前市场上流行的播放器,

    2024年02月06日
    浏览(35)
  • uniapp m3u8格式视频加载

    uniapp一:mui-player:三方  h5 web app   uniapp 使用 mui-player 插件播放 m3u8/flv 视频流_翘翘红的博客-CSDN博客 uniapp 开发的h5项目,需要播放m3u8/flv后缀的视频,网上有很多视频插件,但是样式和效果不尽如人意,博主最后选择mui-player插件: 定制化稍微强一点以及有官方文档可以阅

    2024年02月12日
    浏览(30)
  • uniapp 直播拉流 播放m3u8 视频

    在百度中找啦n多个方法 没有解决啦 巨气人 发现hls.js hls.js不需要任何播放器,它可以直接在标准HTML 元素上运行。 安装第三方库 在uniapp页面显示 如果想要应用在自己的页面中 直接c v 就ok啦 要是有人问推流为啥没有 不要问 问就是不会!!!

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包