当前位置:   article > 正文

vue使用video.js依赖接入视频流(hls(m3u8)、flv)_video.js的依赖

video.js的依赖

前端安装video.js相关依赖

  1. // video.js
  2. npm install video.js
  3. // 安装flv,用于播放 FLV
  4. npm install videojs-flvjs-es6
  5. npm install flv.js

组件引入video.js依赖

  1. import videojs from "video.js";
  2. import "videojs-flvjs-es6";
  3. import "video.js/dist/video-js.css";

组件中使用video.js播放视频

html部分
  1. // 视频标签容器
  2. <template>
  3. <div style="width: 100%; height: 100%" id="videoBottom">
  4. <video
  5. id="videoPlayer"
  6. class="video-js vjs-fluid vjs-big-play-centered"
  7. style="width: 100%; height: 100%; object-fit: fill"
  8. controls
  9. preload="auto"
  10. muted
  11. autoplay
  12. loop
  13. ></video>
  14. </div>
  15. </template>
js部分
  1. <script>
  2. import videojs from "video.js";
  3. import "videojs-flvjs-es6";
  4. import "video.js/dist/video-js.css";
  5. export default {
  6. data() {
  7. return {
  8. myVideo: null,
  9. };
  10. },
  11. methods: {
  12. initVideo() {
  13. this.$nextTick(() => {
  14. const options = {
  15. // 初始化默认宽高,避免第一次加载闪一下
  16. width: 660,
  17. height: 345,
  18. fullscreen: {
  19. options: { navigationUI: "hide" },
  20. },
  21. techOrder: ["html5", "flvjs"], // 兼容顺序
  22. // 配置支持播放hls格式视频流
  23. html5: {
  24. hls: {
  25. withCredentials: true,
  26. },
  27. },
  28. // 配置支持播放flv格式视频流
  29. flvjs: {
  30. mediaDataSource: {
  31. isLive: false,
  32. cors: true,
  33. withCredentials: false,
  34. },
  35. },
  36. sources: [
  37. {
  38. src: "https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8",
  39. type: "application/x-mpegURL",
  40. },
  41. ],
  42. };
  43. const videElement = document.getElementById(`videoPlayer`);
  44. this.myVideo = videojs(videElement, options, function onPlayerReady() {
  45. videojs.log("播放器准备好了");
  46. });
  47. });
  48. },
  49. // 重新加载播放器,适用于tab栏切换更换视频流数据
  50. updateVideoPlay() {
  51. const myVideoDiv = document.getElementById("videoBottom");
  52. myVideoDiv.innerHTML =
  53. "<video id='videoPlayer' class='video-js vjs-default-skin vjs-big-play-centered' controls muted autoplay style='width: 100%;height: 100%; object-fit: fill'></video>";
  54. }
  55. },
  56. mounted() {
  57. this.initVideo();
  58. },
  59. destroyed() {
  60. this.myVideo.dispose(); // 销毁视频
  61. },
  62. };
  63. </script>
sources配置描述(更改type值即可播放对应的视频格式)
格式type值
hls(m3u8)application/x-mpegURL
flvvideo/x-flv

效果演示

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/92454?site
推荐阅读
相关标签
  

闽ICP备14008679号