uni-app关于视频播放问题

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app关于视频播放问题

问题描述

就是在商品详情页播放视频 然后这是我把应用切换到后台运行 打开ios的控制面板 视频播放处会显示 页面路径 这是什么原因

截图

截图

1 回复

针对uni-app中关于视频播放的问题,下面我将提供一个基本的视频播放功能的实现代码案例,使用uni-app内置的<video>组件。这个案例将涵盖视频的基本播放控制,如播放、暂停、全屏等。

首先,确保你的uni-app项目已经正确设置并可以运行。然后,你可以按照以下步骤在页面中添加视频播放功能。

1. 在页面模板中添加<video>组件

<template>
  <view class="container">
    <view class="video-container">
      <video
        id="myVideo"
        src="https://www.example.com/path/to/your/video.mp4"
        controls
        autoplay
        loop
        muted
        @play="onPlay"
        @pause="onPause"
        @fullscreenchange="onFullscreenChange"
      ></video>
    </view>
    <view class="controls">
      <button @click="playVideo">播放</button>
      <button @click="pauseVideo">暂停</button>
      <text>{{ videoStatus }}</text>
    </view>
  </view>
</template>

2. 在页面的<script>部分添加逻辑

<script>
export default {
  data() {
    return {
      videoStatus: '视频未播放',
      videoContext: null,
    };
  },
  mounted() {
    this.videoContext = uni.createVideoContext('myVideo');
  },
  methods: {
    onPlay() {
      this.videoStatus = '视频播放中';
    },
    onPause() {
      this.videoStatus = '视频已暂停';
    },
    onFullscreenChange() {
      this.videoStatus = uni.createSelectorQuery().select('#myVideo').boundingClientRect().exec((res) => {
        if (res[0] && res[0].width === uni.getSystemInfoSync().windowWidth) {
          this.videoStatus = '视频全屏';
        } else {
          this.videoStatus = '视频非全屏';
        }
      });
    },
    playVideo() {
      this.videoContext.play();
    },
    pauseVideo() {
      this.videoContext.pause();
    },
  },
};
</script>

3. 在页面的<style>部分添加样式

<style>
.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
}
.video-container {
  width: 100%;
  max-width: 600px;
  margin: 20px;
}
.controls {
  margin-top: 20px;
}
button {
  margin: 5px;
}
</style>

这个简单的示例展示了如何在uni-app中使用<video>组件来实现视频播放的基本功能。你可以根据需要进一步扩展,例如添加进度条、音量控制等。希望这个示例对你有所帮助!

回到顶部