• vue中使用@liveqing/liveplayer报错问题踩坑记录


    1.安装@liveqing/liveplayer

    npm i @liveqing/liveplayer

    2.引入插件(这里是封装了视频组件)

    1. <script>
    2. import LivePlayer from "@liveqing/liveplayer";
    3. export default {
    4. name: "VideoPanel",
    5. components: {
    6. LivePlayer,
    7. },
    8. props: {
    9. params: {
    10. type: Object,
    11. default: function () {
    12. return {
    13. url: "",
    14. };
    15. },
    16. },
    17. defaultOpts: {
    18. type: Object,
    19. default: function () {
    20. return {
    21. // 播放地址
    22. url: "",
    23. // 视频标题
    24. title: "",
    25. // 视频封面图片
    26. poster: "",
    27. // 播放器控制栏
    28. controls: true,
    29. // 隐藏截图
    30. hideSnapshot: true,
    31. // 是否直播
    32. live: false,
    33. // 是否自动播放
    34. autoplay: true,
    35. // 是否静音
    36. muted: true,
    37. // 流畅模式
    38. fluent: true,
    39. // 是否拉伸
    40. stretch: true,
    41. // 全屏 - 适应div
    42. aspect: "fullscreen",
    43. // 指示加载状态
    44. loading: true,
    45. // 隐藏起播状态下的大播放按钮
    46. hideBigPlay: true,
    47. };
    48. },
    49. },
    50. },
    51. data() {
    52. return {
    53. options: {},
    54. flag: false,
    55. };
    56. },
    57. watch: {
    58. params: function (newVal) {
    59. // if (newVal) {
    60. this.options.url= newVal;
    61. // }
    62. },
    63. },
    64. created() {
    65. this.options = Object.assign({}, this.defaultOpts, this.params);
    66. },
    67. beforeDestroy() {
    68. if (this.options) {
    69. this.options.url = "";
    70. }
    71. this.onExitFullscreen();
    72. },
    73. methods: {
    74. onExitFullscreen() {
    75. this.flag = false;
    76. },
    77. onFullscreen(status) {
    78. this.flag = status;
    79. if (!status) {
    80. this.onExitFullscreen();
    81. return;
    82. }
    83. },
    84. },
    85. };
    86. script>
    87. <style lang="scss" scoped>
    88. .component-wrapper.video-panel {
    89. position: relative;
    90. width: 100%;
    91. height: 100%;
    92. .video-wrapper .video-js {
    93. background-color: rgba(32, 46, 71, 0.6);
    94. .video-title {
    95. top: 4px;
    96. right: unset;
    97. left: 4px;
    98. padding: 4px 6px;
    99. max-width: 80%;
    100. font-size: 16px;
    101. }
    102. .video-control {
    103. position: absolute;
    104. top: 100%;
    105. left: 50%;
    106. transform: translate(-50%, -140%);
    107. margin-top: 0;
    108. }
    109. }
    110. &.fullscreen .video-wrapper .video-js {
    111. .video-title {
    112. top: 60px;
    113. right: unset;
    114. left: 20px;
    115. padding: 5px 8px 6px;
    116. background: rgba(4, 16, 37, 0.6);
    117. border-radius: 4px;
    118. }
    119. }
    120. }
    121. style>

    3.使用

    1. <script>
    2. import VideoPanel from "@/components/video/VideoPanel.vue";
    3. export default {
    4. components: { VideoPanel },
    5. data() {
    6. return {
    7. videoLeftUrl:"",
    8. videoRightUrl:"",
    9. videoRtspUrl:"",
    10. }
    11. }
    12. }
    13. script>

    正常来说这就可以是吧 但是这里还需要以下几步:
    1.安装插件copy-webpack-plugin 请下载这个版本 最开始直接下的最新版 起不来哈

    npm  i  copy-webpack-plugin@4.6.0

    2.在vue.config.js中如下配置

    1. const CopyWebpackPlugin = require('copy-webpack-plugin')
    2. module.exports = {
    3. configureWebpack: config => {
    4. // 视频播放
    5. config.plugins.push(
    6. new CopyWebpackPlugin([
    7. {
    8. from: 'node_modules/@liveqing/liveplayer/dist/component/crossdomain.xml'
    9. },
    10. {
    11. from: 'node_modules/@liveqing/liveplayer/dist/component/liveplayer.swf'
    12. },
    13. {
    14. from: 'node_modules/@liveqing/liveplayer/dist/component/liveplayer-lib.min.js',
    15. to: 'js/'
    16. }
    17. ])
    18. )
    19. },
    20. devServer: {
    21. port: 1888,
    22. }
    23. }

    3.在public/index.html 中引用 liveplayer-lib.min.js

    1. <script type="text/javascript" src="<%= BASE_URL %>js/liveplayer-lib.min.js">script>
    2. <script type="text/javascript" src="<%= BASE_URL %>js/liveplayer-component.min.js">script>

    即可完美启动 但是这个插件不可以直接播放rtsp流 转化视频流过程中可能回出现延迟问题 如需解决请看下篇

  • 相关阅读:
    【ESP32--FreeRTOS 任务间的同步与通信】
    学习之浅谈python如何做接口自动化
    UE5:如何解决背景图片被拉伸的问题?
    想要软件测试效果好,搭建好测试环境是前提
    Python 实战:用 Scrapyd 打造个人化的爬虫部署管理控制台
    HTML期末学生大作业 基于HTML+CSS+JavaScript通用的后台管理系统ui框架模板
    flink的网络缓冲区
    C++简易Tensor实现
    安装dai li
    工业互联网:数字化革命的引擎
  • 原文地址:https://blog.csdn.net/killerdoubie/article/details/133883634