2501_93925515 2026-02-13 14:09 采纳率: 100%
浏览 6
已采纳

怎么在微信小程序中插入视频啊(相关搜索:云开发)

用的 Trae CN写的微信小程序代码,可是每次点击视频跳转后只有空白,别的什么都没有,云开发存储也用了,不知道是用的免费的导致无法公开读取还是因为什么

  • 写回答

1条回答 默认 最新

  • 檀越@新空间 2026-02-13 14:10
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    在微信小程序中插入视频,尤其是使用 云开发(CloudBase) 的方式来存储和调用视频资源时,确实需要特别注意以下几个关键点。你提到的“点击视频跳转后只有空白”,可能与视频资源路径不正确、权限设置问题或代码逻辑错误有关。


    一、使用云开发插入视频的基本流程

    1. 上传视频到云开发数据库
    2. 获取视频的下载地址
    3. 在小程序页面中使用 <video> 组件展示视频

    二、常见问题及解决方案

    1. 视频无法播放:路径错误或权限未开放

    原因:

    • 云开发默认开启的是 私有读取权限,即只有登录用户才能访问。
    • 如果你没有配置好权限,或者视频没有被正确上传,就会导致视频无法加载。

    解决方案:

    步骤一:配置云开发权限

    在云开发控制台中,进入 数据库 > 集合 > 视频集合 > 权限设置,将 读取 权限设为 公开 或者根据你的需求设置合适的权限。

    重点提示: 如果是免费版,建议先测试是否是权限问题,可以暂时设置为“所有人可读”。

    步骤二:确保视频已正确上传

    在小程序代码中,使用 wx.uploadFile 上传视频,并将返回的 fileID 存入云数据库。

    wx.uploadFile({
      url: 'https://api.weixin.qq.com/tcb/uploadfile?access_token=' + accessToken,
      filePath: tempFilePath,
      name: 'file',
      success(res) {
        const fileID = res.data.fileID;
        // 将 fileID 存入云数据库
        db.collection('videos').add({
          data: {
            videoUrl: fileID,
            title: '示例视频'
          }
        })
      }
    });
    

    步骤三:获取并播放视频

    在页面中使用 <video> 组件,通过 cloud: 前缀获取视频地址:

    <view>
      <video src="cloud:{{videoUrl}}" />
    </view>
    

    重点提示: 确保 videoUrl 是从云数据库中正确获取的 fileID


    2. 跳转后只有空白:可能是页面跳转逻辑或组件未渲染

    原因:

    • 页面跳转后没有正确渲染视频组件。
    • 没有传递正确的数据到目标页面。
    • <video> 组件未正确绑定数据。

    解决方案:

    步骤一:检查页面跳转逻辑

    确保你在点击事件中正确跳转到视频页面,并传递了视频信息:

    // 在列表页
    wx.navigateTo({
      url: '/pages/videoDetail/videoDetail?videoId=' + item._id
    });
    

    步骤二:在详情页获取参数并渲染视频

    Page({
      onLoad(options) {
        const videoId = options.videoId;
        db.collection('videos').doc(videoId).get({
          success(res) {
            this.setData({
              videoUrl: res.data.videoUrl
            });
          }
        });
      }
    });
    

    步骤三:确保 <video> 组件正确绑定

    <view>
      <video src="cloud:{{videoUrl}}" />
    </view>
    

    3. 免费版限制:视频播放是否受限?

    说明:

    • 微信云开发的免费版本对部分功能有限制,但视频播放一般不受影响。
    • 如果你使用的是 云存储(Cloud Storage),其免费额度足够支持基本使用。

    建议:

    • 确认你使用的是 cloud: 协议,而不是本地路径。
    • 确保视频文件大小合理,避免过大导致加载失败。

    三、完整代码示例(修改后的)

    1. 上传视频(云开发)

    const db = wx.cloud.database();
    const file = wx.getFileSystemManager().readFileSync(tempFilePath);
    const cloudPath = 'videos/' + Date.now() + '.mp4';
    
    wx.uploadFile({
      url: 'https://api.weixin.qq.com/tcb/uploadfile?access_token=' + accessToken,
      filePath: tempFilePath,
      name: 'file',
      success(res) {
        const fileID = res.data.fileID;
        db.collection('videos').add({
          data: {
            videoUrl: fileID,
            title: '示例视频'
          }
        });
      }
    });
    

    2. 视频详情页(显示视频)

    <view>
      <video src="cloud:{{videoUrl}}" />
    </view>
    
    Page({
      data: {
        videoUrl: ''
      },
      onLoad(options) {
        const videoId = options.videoId;
        db.collection('videos').doc(videoId).get({
          success(res) {
            this.setData({
              videoUrl: res.data.videoUrl
            });
          }
        });
      }
    });
    

    四、总结(重点部分加粗)

    1. 视频上传必须使用云开发 API,并保存 fileID 到数据库。
    2. 视频播放需使用 cloud: 协议,且确保权限设置为公开。
    3. 跳转页面时务必传递正确的视频 ID,并在详情页中正确获取并绑定视频地址。
    4. 检查 <video> 组件是否正确绑定数据,确保路径无误。
    5. 如果仍无法播放,尝试在云开发控制台查看视频是否成功上传并可访问。

    如有更多具体错误信息或代码片段,欢迎继续提问,我可以进一步帮助你定位问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 2月14日
  • 创建了问题 2月13日