当前位置:   article > 正文

vue使用video.js实现播放m3u8格式的视频_videojs兼容m3u8

videojs兼容m3u8

一、安装video.js

npm install video.js


我使用的video.js版本如下:

"video.js": "^7.20.3"

二、VideoPlayer组件

在components下新建一个VideoPlayer文件夹

index如下:

  1. <template>
  2. <div ref="videoDiv"></div>
  3. </template>
  4. <script>
  5. export default {
  6. name: "VideoPlayer",
  7. data() {
  8. return {
  9. player: null,
  10. };
  11. },
  12. props: {
  13. sourceUrl: {
  14. type: String,
  15. default: "",
  16. },
  17. },
  18. mounted() {
  19. this.initVideo();
  20. },
  21. watch: {
  22. sourceUrl: {
  23. handler(val) {
  24. this.initVideo();
  25. },
  26. },
  27. },
  28. methods: {
  29. initVideo() {
  30. // video标签无法动态加载src,所以在vue中如果是动态写入视频地址,js加载在HTML渲染之后,会导致video在取src时无法解析。
  31. // 所以需要用js在获取到src值之后生成HTML元素
  32. this.$refs.videoDiv.innerHTML =
  33. '<video class="video-js vjs-default-skin vjs-big-play-centered">' +
  34. "</video>";
  35. this.player = this.$video(this.$refs.videoDiv.firstElementChild, {
  36. //确定播放器是否具有用户可以与之交互的控件。没有控件,启动视频播放的唯一方法是使用autoplay属性或通过Player API。
  37. controls: true,
  38. //自动播放属性,muted:静音播放
  39. autoplay: "muted",
  40. //建议浏览器是否应在<video>加载元素后立即开始下载视频数据。
  41. preload: "auto",
  42. //设置视频播放器的显示宽度(以像素为单位)
  43. width: "550px",
  44. //设置视频播放器的显示高度(以像素为单位)
  45. height: "366px",
  46. sources: [
  47. {
  48. src: this.sourceUrl,
  49. type: "application/x-mpegURL",
  50. },
  51. ],
  52. });
  53. },
  54. },
  55. beforeDestroy() {
  56. if (this.player != null) {
  57. this.player.dispose(); // dispose()会直接删除Dom元素
  58. }
  59. },
  60. };
  61. </script>

三、main.js里注册

  1. //video.js
  2. import Video from "video.js";
  3. import "video.js/dist/video-js.css";
  4. Vue.prototype.$video = Video;

四、使用 

 直接把地址传给sourceUrl即可

<VideoPlayer :sourceUrl="sourceUrl"></VideoPlayer>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/92493
推荐阅读
相关标签
  

闽ICP备14008679号