当前位置:   article > 正文

vue3 使用video-player 监听事件获取当前播放时间(全网首发)_video-player 获取当前播放时间

video-player 获取当前播放时间

 1.main.ts

安装

npm i vue3-video-play --save
  1. import VueVideoPlayer from '@videojs-player/vue'
  2. import 'video.js/dist/video-js.css'
  3. app.use(VueVideoPlayer)

 2.复制代码直接使用

  1. <script setup lang="ts">
  2. import {ref} from "vue";
  3. import {convertToSeconds} from "@/config/Tool";
  4. let playerOptions = ref({
  5. // height: 200,
  6. // width: document.documentElement.clientWidth, //播放器宽度
  7. playbackRates: [0.7, 1.0, 1.5, 2.0], // 播放速度
  8. autoplay: false, // 如果true,浏览器准备好时开始回放。
  9. muted: true, // 默认情况下将会消除任何音频。
  10. loop: false, // 导致视频一结束就重新开始。
  11. preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
  12. language: 'zh-CN',
  13. aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9""4:3"
  14. fluid: true, //true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  15. notSupportedMessage: '此视频暂无法播放,请稍后再试', // 允许覆盖Video.js无法播放媒体源时显示的默认信息。
  16. controls: true,
  17. controlBar: {
  18. timeDivider: true,
  19. durationDisplay: true,
  20. playToggle: true,
  21. currentTimeDisplay: true,
  22. // 剩余时间
  23. remainingTimeDisplay: true,
  24. // 进度条
  25. progressControl: false,
  26. fullscreenToggle: true // 全屏按钮
  27. }
  28. })
  29. let currentTime = ref(10)
  30. const myVideo = ref(null);
  31. /**
  32. * 播放时长改变触发
  33. * @param e
  34. */
  35. function timeupdateFun(e:any) {
  36. };
  37. /**
  38. * 视频暂停触发
  39. */
  40. function pauseFun(e:any){
  41. var paragraphs = e.target.getElementsByClassName("vjs-current-time-display");
  42. let seconds= convertToSeconds(paragraphs[0].textContent)
  43. console.log(seconds)
  44. }
  45. /**
  46. * 开始播放触发
  47. */
  48. function playFun(e:any){
  49. //console.log('开始播放触发'+e)
  50. }
  51. /**
  52. * 结束播放触发
  53. * @param e
  54. */
  55. function endedFun(e:any){
  56. // console.log(e)
  57. var paragraphs = e.target.getElementsByClassName("vjs-current-time-display");
  58. let seconds= convertToSeconds(paragraphs[0].textContent)
  59. console.log(seconds)
  60. }
  61. function loadedmetadataFun(e:any){
  62. console.log(e)
  63. }
  64. </script>
  65. <template>
  66. <div>
  67. <video-player
  68. @pause="pauseFun"
  69. @play="playFun"
  70. @ended="endedFun"
  71. id="myVideo"
  72. :ref="myVideo"
  73. @timeupdate="timeupdateFun"
  74. @loadedmetadata="loadedmetadataFun"
  75. :src="'https://video-js.51miz.com/preview/video/00/00/18/22/V-182219-2916E838.mp4'"
  76. :options="playerOptions"
  77. :volume="0.6"
  78. :currentTime="currentTime"
  79. />
  80. </div>
  81. </template>
  82. <style scoped>
  83. </style>

 3.获取当前播放了多少秒转换方法

  1. /**
  2. * 视频时间格式转秒数
  3. * @param time
  4. */
  5. export function convertToSeconds(time:any) {
  6. const parts = time.split(':');
  7. let seconds = 0;
  8. if (parts.length === 3) {
  9. seconds += parseInt(parts[0]) * 3600;
  10. seconds += parseInt(parts[1]) * 60;
  11. } else if (parts.length === 2) {
  12. seconds += parseInt(parts[0]) * 60;
  13. }
  14. seconds += parseInt(parts[parts.length - 1]);
  15. return seconds;
  16. }

完整代码,粘贴复制即可获取到当前播放进度

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

闽ICP备14008679号