VideoPreview.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <template>
  2. <div :id="videoProp.videoId" :ref="videoProp.videoId" style="height: 240px;" />
  3. </template>
  4. <script>
  5. import flvjs from 'flv.js'
  6. import DPlayer from 'dplayer'
  7. export default {
  8. name: 'VideoPreview',
  9. props: {
  10. videoProp: {
  11. type: Object,
  12. default: () => null
  13. }
  14. },
  15. data() {
  16. return {
  17. flvjs,
  18. DPlayer,
  19. dplayer: null
  20. }
  21. },
  22. created() {
  23. },
  24. mounted() {
  25. this.dplayer = new DPlayer({
  26. container: document.getElementById(this.videoProp.videoId),
  27. lang: 'zh-cn',
  28. screenshot: false,
  29. autoplay: false,
  30. volume: 0.1,
  31. mutex: true,
  32. video: {
  33. url: this.videoProp.url
  34. }
  35. })
  36. },
  37. destroyed() {
  38. this.dplayer.destroy()
  39. },
  40. methods: {
  41. initMp4Player(coverUrl, videoUrls) {
  42. return new DPlayer({
  43. container: document.querySelector('#dplayer'),
  44. lang: 'zh-cn',
  45. screenshot: false,
  46. autoplay: false,
  47. volume: 0.1,
  48. mutex: true,
  49. video: {
  50. pic: coverUrl,
  51. defaultQuality: 0,
  52. quality: videoUrls
  53. }
  54. })
  55. },
  56. initFlvPlayer(coverUrl, videoUrl) {
  57. return new DPlayer({
  58. container: document.getElementById('dplayer'),
  59. video: {
  60. url: videoUrl,
  61. type: 'customFlv',
  62. customType: {
  63. customFlv: function(video, player) {
  64. const flvPlayer = flvjs.createPlayer({
  65. type: 'flv',
  66. url: video.src
  67. })
  68. flvPlayer.attachMediaElement(video)
  69. flvPlayer.load()
  70. }
  71. }
  72. }
  73. })
  74. }
  75. }
  76. }
  77. </script>
  78. <style>
  79. </style>