index.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <script setup lang="ts">
  2. import { onMounted } from "vue";
  3. import Player from "xgplayer/dist/simple_player";
  4. import volume from "xgplayer/es/controls/volume";
  5. import { deviceDetection } from "@pureadmin/utils";
  6. import screenShot from "xgplayer/es/controls/screenShot";
  7. import playbackRate from "xgplayer/es/controls/playbackRate";
  8. import { useRenderIcon } from "/@/components/ReIcon/src/hooks";
  9. defineOptions({
  10. name: "Video"
  11. });
  12. onMounted(() => {
  13. new Player({
  14. id: "mse",
  15. // 默认静音
  16. volume: 0,
  17. autoplay: false,
  18. screenShot: true,
  19. url: "https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-720p.mp4",
  20. poster:
  21. "https://s2.pstatp.com/cdn/expire-1-M/byted-player-videos/1.0.0/poster.jpg",
  22. fluid: deviceDetection(),
  23. controlPlugins: [volume, playbackRate, screenShot],
  24. //传入倍速可选数组
  25. playbackRate: [0.5, 0.75, 1, 1.5, 2]
  26. });
  27. });
  28. </script>
  29. <template>
  30. <el-card>
  31. <template #header>
  32. <div class="card-header">
  33. <span class="font-medium">
  34. 视频组件,采用开源的
  35. <el-link
  36. href="https://v2.h5player.bytedance.com"
  37. target="_blank"
  38. :icon="useRenderIcon('video-play')"
  39. style="font-size: 16px; margin: 0 4px 5px"
  40. >
  41. 西瓜播放器
  42. </el-link></span
  43. >
  44. </div>
  45. </template>
  46. <div id="mse" />
  47. </el-card>
  48. </template>
  49. <style scoped>
  50. #mse {
  51. flex: auto;
  52. }
  53. </style>