Showing
2 changed files
with
102 additions
and
0 deletions
src/components/MuiVideo/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="video-wrapper"> | ||
| 3 | + <div | ||
| 4 | + class="video-div" | ||
| 5 | + :id="'mui-player-' + item.id" | ||
| 6 | + ></div> | ||
| 7 | + </div> | ||
| 8 | +</template> | ||
| 9 | + | ||
| 10 | +<script setup> | ||
| 11 | + /** | ||
| 12 | + * 视频组件通用模块 | ||
| 13 | + */ | ||
| 14 | + import 'mui-player/dist/mui-player.min.css'; | ||
| 15 | + import MuiPlayer from 'mui-player'; | ||
| 16 | + import { onMounted } from 'vue'; | ||
| 17 | + // 视频基础属性 | ||
| 18 | + const props = defineProps({ | ||
| 19 | + item: Object, | ||
| 20 | + }); | ||
| 21 | + // 视频播放事件回调 | ||
| 22 | + const emit = defineEmits(['on-play']); | ||
| 23 | + | ||
| 24 | + onMounted(() => { | ||
| 25 | + const mp = new MuiPlayer({ | ||
| 26 | + container: '#mui-player-' + props.item.id, | ||
| 27 | + title: props.item.title, | ||
| 28 | + src: props.item.video, | ||
| 29 | + poster: props.item.cover, | ||
| 30 | + autoFit: false, | ||
| 31 | + videoAttribute: [ | ||
| 32 | + // 声明启用同层播放, 不让会自动全屏播放 | ||
| 33 | + { attrKey: 'webkit-playsinline', attrValue: 'webkit-playsinline' }, | ||
| 34 | + { attrKey: 'playsinline', attrValue: 'playsinline' }, | ||
| 35 | + { attrKey: 'x5-video-player-type', attrValue: 'h5-page' }, | ||
| 36 | + ], | ||
| 37 | + }); | ||
| 38 | + const video = mp.video(); | ||
| 39 | + // 监听原生video事件 | ||
| 40 | + video && | ||
| 41 | + video.addEventListener('play', function (event) { | ||
| 42 | + emit('on-play', { | ||
| 43 | + event, | ||
| 44 | + props: props.item, | ||
| 45 | + }); | ||
| 46 | + }); | ||
| 47 | + }); | ||
| 48 | +</script> | ||
| 49 | + | ||
| 50 | +<style lang="less" scoped> | ||
| 51 | + .video-wrapper { | ||
| 52 | + margin: 1rem; | ||
| 53 | + border-bottom-left-radius: 5px; | ||
| 54 | + border-bottom-right-radius: 5px; | ||
| 55 | + box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.13); | ||
| 56 | + | ||
| 57 | + .video-div { | ||
| 58 | + border-top-left-radius: 5px; | ||
| 59 | + border-top-right-radius: 5px; | ||
| 60 | + } | ||
| 61 | + } | ||
| 62 | +</style> |
src/components/MuiVideo/mock.js
0 → 100644
| 1 | +export default [ | ||
| 2 | + { | ||
| 3 | + "id": 314952, | ||
| 4 | + "localism_type": "普通话", | ||
| 5 | + "cover": "https://gd-pri.jinshujufiles.com/en/NAGn1D/FgYwXBnKzvOcLNoojqrpwYGsppQI_field_74_1652859614.png?token=7NK_Z1IEoKaIY6I9RXzO4b9uQPwuwdvnlGbzHZmF:A3XNpa2-O4eaFjPK5R0pM-wMS2Q=:eyJTIjoiZ2QtcHJpLmppbnNodWp1ZmlsZXMuY29tL2VuL05BR24xRC9GZ1l3WEJuS3p2T2NMTm9vanFycHdZR3NwcFFJX2ZpZWxkXzc0XzE2NTI4NTk2MTQucG5nKiIsIkUiOjE5Njg0MjkxNDZ9", | ||
| 6 | + "video": "https://gd-pri.jinshujufiles.com/en/NAGn1D/FjyggcxvTB9HJ6yFBv4i7-HDuW8F_field_20_1652859612.mp4?token=7NK_Z1IEoKaIY6I9RXzO4b9uQPwuwdvnlGbzHZmF:YLs7BNF-chzhTsnoFqje-x4RIao=:eyJTIjoiZ2QtcHJpLmppbnNodWp1ZmlsZXMuY29tL2VuL05BR24xRC9GanlnZ2N4dlRCOUhKNnlGQnY0aTctSER1VzhGX2ZpZWxkXzIwXzE2NTI4NTk2MTIubXA0KiIsIkUiOjE5Njg0MjkxNDZ9", | ||
| 7 | + "note": "z", | ||
| 8 | + "kg_id": 314481, | ||
| 9 | + "kg_name": "云南省普洱市镇沅彝族哈尼族拉祜族自治县者东镇幼儿园", | ||
| 10 | + "perf_id": 314950, | ||
| 11 | + "name": "胡二", | ||
| 12 | + "avatar": "https://cdn.ipadbiz.cn/ipadbiz/MjEwMzViY2QzM2RlZDJhZTEyNjM1Y2UxOGZiZDcyYjg0NmYxNDljNg.jpeg", | ||
| 13 | + "book_id": 314483, | ||
| 14 | + "book_name": "《它们从哪里来》", | ||
| 15 | + "comment_num": 0, | ||
| 16 | + "like_num": 1, | ||
| 17 | + "favor_num": 0, | ||
| 18 | + "play_num": 1, | ||
| 19 | + "is_like": 1 | ||
| 20 | + }, | ||
| 21 | + { | ||
| 22 | + "id": 314946, | ||
| 23 | + "localism_type": "普通话", | ||
| 24 | + "cover": "https://gd-pri.jinshujufiles.com/en/g7D0MT/FgYwXBnKzvOcLNoojqrpwYGsppQI_field_74_1652857953.png?token=7NK_Z1IEoKaIY6I9RXzO4b9uQPwuwdvnlGbzHZmF:CYT2_4fEbC6BoYDc8rXUJxXiZx4=:eyJTIjoiZ2QtcHJpLmppbnNodWp1ZmlsZXMuY29tL2VuL2c3RDBNVC9GZ1l3WEJuS3p2T2NMTm9vanFycHdZR3NwcFFJX2ZpZWxkXzc0XzE2NTI4NTc5NTMucG5nKiIsIkUiOjE5Njg0Mjc0ODV9", | ||
| 25 | + "video": "https://gd-pri.jinshujufiles.com/en/g7D0MT/FjyggcxvTB9HJ6yFBv4i7-HDuW8F_field_20_1652857950.mp4?token=7NK_Z1IEoKaIY6I9RXzO4b9uQPwuwdvnlGbzHZmF:1i5wziqwGbCx41ZKzO-qWwYZyeQ=:eyJTIjoiZ2QtcHJpLmppbnNodWp1ZmlsZXMuY29tL2VuL2c3RDBNVC9GanlnZ2N4dlRCOUhKNnlGQnY0aTctSER1VzhGX2ZpZWxkXzIwXzE2NTI4NTc5NTAubXA0KiIsIkUiOjE5Njg0Mjc0ODV9", | ||
| 26 | + "note": "Z", | ||
| 27 | + "kg_id": 314481, | ||
| 28 | + "kg_name": "云南省普洱市镇沅彝族哈尼族拉祜族自治县者东镇幼儿园", | ||
| 29 | + "perf_id": 314945, | ||
| 30 | + "name": "胡大", | ||
| 31 | + "avatar": null, | ||
| 32 | + "book_id": 314483, | ||
| 33 | + "book_name": "《它们从哪里来》", | ||
| 34 | + "comment_num": 1, | ||
| 35 | + "like_num": 1, | ||
| 36 | + "favor_num": 0, | ||
| 37 | + "play_num": 1, | ||
| 38 | + "is_like": 1 | ||
| 39 | + } | ||
| 40 | +] |
-
Please register or login to post a comment