小程序进阶学习(视频完结)(核心,重点)

首先上面是一个视频播放器

 

把视频的宽度设置为100%即可铺满全屏

然后视频的标题和作者

最后就是一个视频播放列表 ,设置一个固定位置开始滚动即可

还有一个问题没有解决,大家出出主意。

 

 在播放页面在点击一个新的视频去播放,点进去的新视频获取不到自身的id,就导致后面的数据无法显示。

页面代码

<!--pages/video-info/video-info.wxml-->

<view>
  <video 
    src="{{mvUrl}}" 
    autoplay="true" 
    class="video" 
    danmu-list="{{danmuLists}}"
    referrer-policy="origin"
    >
  </video>
</view>

<scroll-view  class="content" scroll-y>
<view class="container">
  <image class="image" mode="widthFix" src="{{mvInfos.cover}}"></image>
  <view class="text-container">
     <text class="text">{{mvInfos.name}}-{{mvInfos.artistName}}</text>
 
  </view>
</view>
  <view class="videoList"> 
    <block wx:for="{{videoLists}}" wx:key="{{item.id}}">
    <video-item class="item" itemData="{{item}}" bindtap="onClickItem" data-item="{{itemData.id}}" />      
    </block>
  </view>
</scroll-view >
// pages/video-info/video-info.js
import {getMvUrlInfo,getMvInfos,getMvRelate,getTopMv} from "../../services/request/myvideorequest"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    id : 0,
    videoid:0,
    mvUrl:"",
    mvInfos:{},
    mvRelate:{},
    videoLists:[],
    offset:0,
    hasMore:true,
    danmuLists:[
      { text:"好听",color:"#ff00000", time:5},
      { text:"真好",color:"#ff00000", time:6},
      { text:"完美",color:"#ff00000", time:7},
    ]
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.clearAllData()
    const id = options.id
   this.getvideo()
   this.feachgetMvInfo(id)
   this.feachgetMvInfos(id)
   this.feachgetMvRelate(id)
  },
  async feachgetMvInfo(id){
    const res = await getMvUrlInfo(id)
    this.setData({mvUrl:res.data.url})
  },
  async feachgetMvInfos(id){
    const res = await getMvInfos(id)
    this.setData({mvInfos : res.data})
    console.log(res.data)
  },
  async feachgetMvRelate(id){
    const res = await getMvRelate(id)
    this.setData({mvRelate : res.data})
    console.log("更多信息:",res.data)
  },
  async getvideo(){
    const videolist = await getTopMv(this.data.offset)
    const newVideoList = [...this.data.videoLists,...videolist.data]
    this.setData({videoLists: newVideoList})
    this.data.offset+=10
    this.data.hasMore = videolist.hasMore
    console.log("视频列表中的数据:",this.data.videoLists)
  },
  onClickItem(event){
    console.log(event)
    const videoid = event.currentTarget.dataset.item
    console.log("要播放视频id",event.currentTarget.dataset.item)
    this.data.videoid = videoid
    wx.navigateTo({
      
      url: `/pages/video-info/video-info?id=${videoid}`,
    })
    console.log("完成跳转")
  },
  clearAllData(){
    this.data.id=0,
    this.data.videoid=0,
    this.data.mvUrl=""
    this.data.mvInfos={},
    this.data.mvRelate={},
    this.data.videoLists=[],
    this.data. offset=0,
    this.data.hasMore=true
  },
  onReachBottom() {
    this.getvideo()
  }
})
/* pages/video-info/video-info.wxss */
page{
  height: 100vh;
}
.video{
  width: 100%;
} 
/* pages/main-video/main-video.wxss */
.videoList{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  padding:0 10rpx;
}
.item{
  width: 48%;
} 
.content {
  /* height: 325px; */
  height: calc(100% - 225px);
}

/* 在wxss文件中 */
.container {
  display: flex;
  flex-direction: row;
  align-items: center; /* 垂直居中对齐 */
  margin-left: 18px;
}

.image {
  width: 120px;
  height: 120px;
  margin-right: 20px;
  margin-top: 18px;
  margin-bottom: 24px;
}

.text-container {
  flex: 1;  
  margin-right: 20px;
}

.text {
  font-size: 18px;
  color: #333; 
 
}
{
  "usingComponents": {
    "video-item":"/components/video-items/video-item"

  },
  "enablePullDownRefresh": true
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/332372.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于yolov2深度学习网络的车辆检测算法matlab仿真,包括白天场景和夜晚场景

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 YOLOv2算法原理 4.2 车辆检测原理 4.3 白天场景和夜晚场景的车辆检测 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 load yolov2.mat%…

前端发展趋势:WebAssembly、PWA 和响应式设计

目录 前言 WebAssembly&#xff1a;超越JavaScript的性能 渐进式Web应用&#xff08;PWA&#xff09;&#xff1a;离线可用和更好的用户体验 响应式设计&#xff1a;适应多种设备 总结 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊前端…

Android现代开发推荐 | Android Showcase 2.0

Android现代开发推荐 | Android Showcase 2.0 Android Showcase是一个完整的Android应用程序示例&#xff0c;它使用了现代的Android应用程序开发方法&#xff0c;集成了流行的开发工具、库和代码检查工具&#xff0c;以及强大的测试框架和持续集成&#xff08;CI&#xff09;…

python数字图像处理基础(八)——harris角点检测、图像尺度空间、SIFT算法

目录 harris角点检测原理函数 图像尺度空间概念局部不变性局部不变特征SIFT算法 harris角点检测 原理 Harris 角点检测是一种用于在图像中检测角点的算法。角点是图像中局部区域的交叉点或者突出的特征点。Harris 角点检测算法旨在寻找图像中对于平移、旋转和尺度变化具有不变…

数据结构:链式栈

stack.h /* * 文件名称&#xff1a;stack.h * 创 建 者&#xff1a;cxy * 创建日期&#xff1a;2024年01月18日 * 描 述&#xff1a; */ #ifndef _STACK_H #define _STACK_H#include <stdio.h> #include <stdlib.h>typedef struct stack{int data…

FPGA物理引脚,原理(Pacakge and pinout)-认知3

画FPGA芯片引脚封装图&#xff08;原理&#xff09;&#xff0c;第一是参考开发板(根据一下描述了解总览&#xff09;&#xff0c;第二是研究Datasheet. ASCII Pinout File Zynq-7000 All Programmable SoC Packaging and Pinout(UG585) 1. Pacakge overview 1.1&#xff0…

爬虫案例—根据四大名著书名抓取并存储为文本文件

爬虫案例—根据四大名著书名抓取并存储为文本文件 诗词名句网&#xff1a;https://www.shicimingju.com 目标&#xff1a;输入四大名著的书名&#xff0c;抓取名著的全部内容&#xff0c;包括书名&#xff0c;作者&#xff0c;年代及各章节内容 诗词名句网主页如下图&#x…

ChatGPT Plus续费充值,到账延迟,如何申诉?

ChatGPT Plus充值总是到账延迟比较严重&#xff0c;一般多是通过充值链接代充值遇到&#xff0c;如果是账号登陆充值&#xff0c;是即时到账。但是有的客户不愿意提供账号密码&#xff0c;遇到延迟到账的情况如何解决呢&#xff1f;客户可按下面操作申诉&#xff0c;可快速到账…

Linux编译器--gcc和g++使用

gcc和g使用 一、gcc/g的作用1.1 预处理1.2 编译1.3 汇编1.4 链接 二、静态库和动态库三、make/Makefile3.1 make/Makefile3.2 依赖关系和依赖方法3.3 多文件编译3.4 make原理3.5 项目清理 四、linux下的第一个小程序-进度条4.1 行缓冲区的概念4.2 \r和\n4.3 进度条代码 一、gcc…

细讲Labview条件结构用法及易错点

本文讲解Labview条件结构的常用情景及易错点注意事项。帮助大家深刻理解并使用该结构&#xff0c;欢迎点赞关注加评论&#xff0c;有问题可以私聊或在下方评论区留言。 本文程序均附在文章结尾&#xff0c;可自行下载学习。 博主之前讲过Labview事件结构、For循环等的基础知识介…

SpringBoot连接远程服务器redis

SpringBoot连接远程服务器redis 1、指定redis配置启动 进入redis安装地址&#xff0c;我这里安装的是 /usr/local/src/redis-6.2.6 先copy一份配置文件 cp redis.conf redis.conf.bck然后修改配置文件信息 vim redis.conf bind 0.0.0.0 # 守护进程&#xff0c;修改为yes后即可…

Flutter中使用minio_new库

前言 在移动开发中&#xff0c;我们常常会遇到需要在App中处理文件上传和下载的需求。Minio是一个开源的对象存储服务&#xff0c;它兼容Amazon S3云存储服务接口&#xff0c;可以用于存储大规模非结构化的数据。 开始之前 在pubspec.yaml文件中添加minio_new库的依赖&#xf…

2023企业怎样抵御经济的不确定性?

在日益不确定的经济环境&#xff0c;继续业务照旧可能会超过陷入逆风的风险。要加入真正有复原力的企业行列&#xff0c;实现整个经济周期的增长&#xff0c;2023是时候发力业务创新&#xff1a;优化选择新的创新组合&#xff0c;洞察并发现新的创新机会&#xff0c;并发展新的…

Android Launcher3各启动场景源码分析

文章目录 一、概述二、开机启动Launcher2.1、开机启动Launcher流程图2.2、开机启动流程源码分析 三、短压Home键启动Launcher3.1、短压Home键启动Launcher流程图3.2、短压Home键启动Launcher源码分析 四、Launcher异常崩溃后的自启动4.1、Launcher异常崩溃后的自启动流程图4.2、…

C语言总结十三:程序环境和预处理详细总结

了解程序的运行环境可以让我们更加清楚的程序的底层运行的每一个步骤和过程&#xff0c;做到心中有数&#xff0c;预处理阶段是在预编译阶段完成&#xff0c;掌握常用的预处理命令语法&#xff0c;可以让我们正确的使用预处理命令&#xff0c;从而提高代码的开发能力和阅读别人…

在线扒站网PHP源码-在线扒站工具网站源码

源码介绍 这是一款在线的网站模板下载程序&#xff0c;也就是我们常说的扒站工具&#xff0c;利用它我们可以很轻松的将别人的网站模板样式下载下来&#xff0c;这样就可以大大提高我们编写前端的速度了&#xff01;注&#xff1a;扒取的任何站点不得用于商业、违法用途&#…

如何在CentOS 7 中基于OpenSSL 3.0 搭建Python 3.0 环境

1、OpenSSL 1.1 原因 [rootlocalhost ~]# openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 [rootlocalhost ~]#通过执行openssl version可知Linux系统已经安装了OpenSSL&#xff0c;但该版本较低&#xff1b;Python 3 要求 OpenSSL版本不能低于1.1.1&#xff0c;否则安装P…

【02】mapbox js api加载arcgis切片服务

需求&#xff1a; 第三方的mapbox js api加载arcgis切片服务&#xff0c;同时叠加在mapbox自带底图上 效果图&#xff1a; 形如这种地址去加载&#xff1a; http://zjq2022.gis.com:8080/demo/loadmapbox.html arcgis切片服务参考链接思路&#xff1a;【01】mapbox js api加…

【Copula】最可能场景详解

基于Copula联合分布的最可能场景详解 最可能场景&#xff08;The most-likely scenario&#xff09;实例探讨参考 最可能场景&#xff08;The most-likely scenario&#xff09; 相应英文介绍原理介绍如下&#xff1a;&#xff08;出自论文J2020-Drought hazard transferabilit…

RTC讲解

RTC&#xff08;Real Time Clock&#xff09;实时时钟 RTC实时时钟本质上是一个独立的定时器。RTC模块拥有一组连续计数的32位无符号计数器&#xff0c;在相应软件配置下&#xff0c;可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配…