- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章如何在vue中使用video.js播放m3u8格式的视频由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
@[toc] 注意:
1
2
3
4
|
"vue"
:
"^2.6.11"
,
"video.js"
:
"^7.10.2"
,
"videojs-contrib-hls"
:
"^5.15.0"
,
"mux.js"
:
"^5.7.0"
|
1
2
3
|
yarn add video.js
yarn add videojs-contrib-hls
// 这是播放hls流需要的插件
yarn add mux.js
// 在vue项目中,若不安装它可能报错
|
1.在src文件夹下新建 plugins文件夹,并新建video.js文件; 。
video.js文件的内容如下:
1
2
3
4
|
import
"video.js/dist/video-js.css"
;
// 引入video.js的css
import hls from
"videojs-contrib-hls"
;
// 播放hls流需要的插件
import Vue from
"vue"
;
Vue.use(hls);
|
2.在main.js中引入刚刚的video.js文件 。
1
|
import
"./plugins/video.js"
;
// 引入刚刚定义的video.js文件
|
Test.vue文件 。
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<template>
<div class=
"test-videojs"
>
<video id=
"videoPlayer"
class=
"video-js"
muted></video>
</div>
</template>
<script>
import Videojs from
"video.js"
;
// 引入Videojs
export
default
{
data() {
return
{
// https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8 是一段视频,可将cctv1 (是live现场直播,不能快退)的替换为它,看到快进快退的效果
nowPlayVideoUrl:
"http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8"
};
},
mounted() {
this
.initVideo(
this
.nowPlayVideoUrl);
},
methods: {
initVideo(nowPlayVideoUrl) {
// 这些options属性也可直接设置在video标签上,见 muted
let options = {
autoplay:
true
,
// 设置自动播放
controls:
true
,
// 显示播放的控件
sources: [
// 注意,如果是以option方式设置的src,是不能实现 换台的 (即使监听了nowPlayVideoUrl也没实现)
{
src: nowPlayVideoUrl,
type:
"application/x-mpegURL"
// 告诉videojs,这是一个hls流
}
]
};
// videojs的第一个参数表示的是,文档中video的id
const myPlyer = Videojs(
"videoPlayer"
, options,
function
onPlayerReady() {
console.log(
"onPlayerReady 中的this指的是:"
,
this
);
// 这里的this是指Player,是由Videojs创建出来的实例
console.log(myPlyer ===
this
);
// 这里返回的是true
});
}
}
};
</script>
<style lang=
"scss"
>
#videoPlayer {
width: 500px;
height: 300px;
margin: 50px auto;
}
</style>
|
视频播放效果如图:
打印结果如图:
Test.vue文件 。
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
<template>
<div class=
"test-videojs"
>
<video id=
"videoPlayer"
class=
"video-js"
></video>
<el-button type=
"danger"
@click=
"changeSource"
>切换到CCTV3</el-button>
</div>
</template>
<script>
import Videojs from
"video.js"
;
// 引入Videojs
export
default
{
data() {
return
{
nowPlayVideoUrl:
"http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8"
,
options: {
autoplay:
true
,
// 设置自动播放
muted:
true
,
// 设置了它为true,才可实现自动播放,同时视频也被静音 (Chrome66及以上版本,禁止音视频的自动播放)
preload:
"auto"
,
// 预加载
controls:
true
// 显示播放的控件
},
player:
null
};
},
mounted() {
this
.getVideo(
this
.nowPlayVideoUrl);
},
methods: {
getVideo(nowPlayVideoUrl) {
this
.player = Videojs(
"videoPlayer"
,
this
.options);
//关键代码, 动态设置src,才可实现换台操作
this
.player.src([
{
src: nowPlayVideoUrl,
type:
"application/x-mpegURL"
// 告诉videojs,这是一个hls流
}
]);
},
changeSource() {
this
.nowPlayVideoUrl =
"http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8"
;
console.log(
this
.nowPlayVideoUrl,
"改变了"
);
}
},
watch: {
nowPlayVideoUrl(newVal, old) {
this
.getVideo(newVal);
}
},
beforeDestroy() {
if
(
this
.player) {
this
.player.dispose();
// Removing Players,该方法会重置videojs的内部状态并移除dom
}
}
};
</script>
<style lang=
"scss"
>
#videoPlayer {
width: 500px;
height: 300px;
margin: 50px auto;
}
</style>
|
视频切换效果如图:
需用muted属性解决 。
报错信息:DOMException: play() failedbecause the user didn't interact with the document first.(用户还没有交互,不能调用play) 。
解决办法:设置muted属性为true 。
1
|
<video id=
"videoPlayer"
class=
"video-js"
muted></video>
|
关于muted属性:
需得动态设置src才能实现 。
1
2
3
4
5
6
7
|
// 动态设置src
this
.player.src([
{
src: nowPlayVideoUrl,
type:
"application/x-mpegURL"
// 告诉videojs,这是一个hls流
}
]);
|
报错信息:* mux.js/lib/tools/parse-sidx in ./node_modules/video.js/dist/video.es.js To install it, you can run: npm install --save mux.js/lib/tools/parse-sidx 。
解决办法:安装mux.js 。
1
|
yarn add mux.js
|
播放rtmp流的操作与播放hls流的操作几乎相同,不同在于:
1
2
|
import
"videojs-flash"
;
// 播放rtmp流需要的插件
type:
'rtmp/flv'
,
// 这个type值必写, 告诉videojs这是一个rtmp流视频
|
以上就是如何在vue中使用video.js 播放m3u8格式的视频的详细内容,更多关于vue 使用videojs 播放m3u8格式的视频的资料请关注我其它相关文章! 。
原文链接:https://juejin.cn/post/6923006396896116744 。
最后此篇关于如何在vue中使用video.js播放m3u8格式的视频的文章就讲到这里了,如果你想了解更多关于如何在vue中使用video.js播放m3u8格式的视频的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我对此很陌生,我在这里的论坛上检查过答案,但我没有找到任何真正可以帮助我的答案。我正在尝试播放 res/raw 文件夹中的视频。到目前为止我已经设置了这段代码: MediaPlayer mp; @Ov
我可以播放一个视频剪辑,检测视频的结尾,然后创建一个表单,然后播放另一个视频剪辑。我的问题是,表单 react 不正确,我创建了带有提交按钮和两个单选按钮可供选择的表单。我希望让用户进行选择,验证响应
首先,我必须说我在web2py讨论组中看到过类似的内容,但我不太理解。 我使用 web2py 设置了一个数据库驱动的网站,其中的条目只是 HTML 文本。其中大多数将包含 img和/或video指向相
我正在尝试在视频 View 中播放 YouTube 视频。 我将 xml 布局如下: 代码是这样的: setContentView(R.layout.webview); VideoV
我正在开发一个需要嵌入其中的 youtube 视频播放器的 android 应用程序。我成功地从 API 获得了 RTSP 视频 URL,但是当我试图在我的 android 视频 View 中加载这个
我目前正在从事一个使用 YouTube API 的网络项目。 我完全不熟悉 API。所以每一行代码都需要付出很多努力。 使用以下代码,我可以成功检索播放列表中的项目: https://www.goog
是否可以仅使用视频 ID 和 key 使用 API V3 删除 youtube 视频?我不断收到有关“必需参数:部分”丢失的错误消息。我用服务器和浏览器 api 键试了一下这是我的代码: // $yo
所以我一直坚持这个大约一个小时左右,我就是无法让它工作。到目前为止,我一直在尝试从字符串中提取整个链接,但现在我觉得只获取视频 ID 可能更容易。 RegEx 需要从以下链接样式中获取 ID/URL,
var app = angular.module('speakout', []).config( function($sceDelegateProvider) {
我正在努力从 RSS 提要中阅读音频、视频新闻。我如何确定该 rss 是用于新闻阅读器还是用于音频或视频? 这是视频源:http://feeds.cbsnews.com/CBSNewsVideo 这是
利用python反转图片/视频 准备:一张图片/一段视频 python库:pillow,moviepy 安装库 ?
我希望在用户双击视频区域时让我的视频全屏显示,而不仅仅是在他们单击控件中的小图标时。有没有办法添加事件或其他东西来控制用户点击视频时发生的情况? 谢谢! 最佳答案 按照 Musa 的建议,附
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 7年前关闭。 Improve this questi
我有一个公司培训视频加载到本地服务器上。我正在使用 HTML5 的视频播放来观看这些视频。该服务器无法访问网络,但我已加载 apache 并且端口 8080 对同一网络上的所有机器开放。 这些文件位于
我想混合来自 video.mp4 的视频(时长 1 分钟)和来自 audio.mp3 的音频(10 分钟持续时间)到一个持续时间为 1 分钟的输出文件中。来自 audio.mp3 的音频应该是从 4
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 8年前关闭。 Improve this questi
我正在尝试使用 peer/getUserMedia 创建一个视频 session 网络应用程序。 目前,当我将唯一 ID 发送到视频 session 时,我能够听到/看到任何加入我的 session
考虑到一段时间内的观看次数,我正在评估一种针对半自动脚本的不同方法,该脚本将对视频元数据执行操作。 简而言之,只要视频达到指标中的某个阈值,就说观看次数,它将触发某些操作。 现在要执行此操作,我将不得
我正在通过iBooks创建专门为iPad创建动态ePub电子书的网站。 它需要支持youtube视频播放,所以当我知道视频的直接路径时,我正在使用html5 标记。 有没有一种使用html5 标签嵌入
我对Android不熟悉,我想浏览youtube.com并在Webview内从网站显示视频。当前,当我尝试执行此操作时,将出现设备的浏览器,并让我使用设备浏览器浏览该站点。如果Webview不具备这种
我是一名优秀的程序员,十分优秀!