uniapp小程序点击按钮打开图片/全屏播放视频组件
根据传入的数组list来决定打开图片还是全屏播放视频,还有横竖屏等初始预设参数
组件.vue
<template> <view v-if="list"> <view class="button" @click="openMedia()">打开图片/视频</view> <!-- 始终竖屏播放:direction="0" --> <video v-show="isOpenVideo" id="myVideo" :src="list[0]" @fullscreenchange="fullscreenchange"></video> </view> </template> <script> const util = require(@/utils/utils.js) export default { name: "open-media", props: { list: { type: Array, default: [] }, }, data() { return { isOpenVideo: false, videoContext: null }; }, methods: { openMedia() { if (this.list[0].indexOf(.mp4) > 0) { //打开视频(全屏播放) this.isOpenVideo = true this.videoContext = uni.createVideoContext(myVideo, this) this.videoContext.play() this.videoContext.requestFullScreen() } else { //打开图片 util.previewImage(this.list) } }, //退出全屏时停止播放 fullscreenchange(e) { console.log(e) if (!e.detail.fullScreen) { this.videoContext.stop() this.isOpenVideo = false } } } } </script> <style lang="scss"> .button { width: 230rpx; text-align: center; padding: 10rpx 20rpx; border: 1px solid #000741; border-radius: 50rpx; margin-top: 15rpx; } </style>
utils.js
欢迎交流~~
下一篇:
strlen()详解及模拟实现