【视频】横屏播放,uniapp,微信小程序,可选择播放速度,暂停和继续播放

这篇具有很好参考价值的文章主要介绍了【视频】横屏播放,uniapp,微信小程序,可选择播放速度,暂停和继续播放。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【视频】横屏播放,uniapp,微信小程序,可选择播放速度,暂停和继续播放,音视频,uni-app,微信小程序
【视频】横屏播放,uniapp,微信小程序,可选择播放速度,暂停和继续播放,音视频,uni-app,微信小程序文章来源地址https://www.toymoban.com/news/detail-676637.html

<template>
	<view class="form1box u-f">
		<image src="@/static/img/fanhui.png" mode="" class="u-w-25.86 u-h-25.86 u-m-r-21" @click="leftClick"></image>
		
		<view class="content">
			<video id="myVideo"
			class="u-w-460"
			:style="{'height':winheight+'px'}"   
			autoplay
			:src="videosrc"
			object-fit='cover'
			:controls='true'
			:show-fullscreen-btn='false'
			:show-center-play-btn='false'
			:show-play-btn='false'
			@ended='endedFun'
			></video>
		</view>
		<view class="operate u-m-l-12" >
			<view class="u-flex" @click="zhFun">
				<image src="@/static/img/sw1.png" mode="" class="u-w-36.95 u-h-19.4 u-m-r-21.71" v-if="isZH"></image>
				<image src="@/static/img/sw.png" mode="" class="u-w-36.95 u-h-19.4 u-m-r-21.71" v-else></image>
				<text>添加中文朗读</text>
			</view>
			<view class="u-flex" @click="sjFun">
				<image src="@/static/img/suiji.png" mode="" class="u-w-36.48 u-h-36.48 u-m-r-21.24" v-if="issj"></image>
				<image src="@/static/img/zan1.png" mode="" class="u-w-36.48 u-h-36.48 u-m-r-21.24" v-else></image>
				<text> {{issj?'随机播放':'暂停'}}</text>
			</view>
			<view class="u-flex" @click="bofangFun">
				<image src="@/static/img/you.png" mode="" class="u-w-36.48 u-h-36.48 u-m-r-21.24" v-if="isbofang"></image>
				<image src="@/static/img/zan1.png" mode="" class="u-w-36.48 u-h-36.48 u-m-r-21.24" v-else></image>
				<text>{{isbofang?'自动播放':'暂停'}}</text>
			</view>
			<view class="bigbox">
				<view class="scrollbox" v-if="suduShow">
					<view 
					v-for="(item,i) in suduList" :key="i"
					class="u-m-b-10"
					:class="item.choose ? 'ac' :''"
					@click="suduFun(i)"
					>{{item.name}}X</view>
				</view>
				<view @click="suduShow=!suduShow" class="u-flex">
					<view class="sudu u-w-36.95 u-m-r-21.71">{{sudu}}</view>
					<text>播放速度</text>
				</view>
			</view>
			<view class="bigbox">
				<view class="scrollbox" v-if="scrollShow">
					<view 
					v-for="(item,i) in timeList" :key="i"
					class="u-m-b-10"
					:class="item.choose ? 'ac' :''"
					@click="timeFun(i)"
					>{{item.time}}s</view>
				</view>
				
				<view @click="scrollShow=!scrollShow" class="u-flex">
					<view class="sudu u-w-36.95 u-m-r-21.71">{{time}}s</view>
					<text>间隔距离</text>
				</view>
			
			</view>
		</view>
	</view>
</template>

<script>
	// import {
	//   xxx
	//  } from "@/api/index/index.js"
	export default {
		components: {},
		data() {
			return {
				winheight:0,
				videosrc:'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4', // 视频
				
				scrollShow:false, // 时间间隔默认不显示false
				timeList:[
					{choose:false,time:'1.0'},
					{choose:false,time:'1.5'},
					{choose:false,time:'2.0'},
					{choose:true,time:'2.5'},
					{choose:false,time:'3.0'},
					{choose:false,time:'3.5'},
					{choose:false,time:'4.0'},
					{choose:false,time:'4.5'},
					{choose:false,time:'5.0'},
				],
				time:'2.5' ,// 时间间隔 默认2.5s
				
				suduShow:false, // 播放速度默认不显示false
				suduList:[
					{choose:false,name:'0.25'},
					{choose:false,name:'0.5'},
					{choose:false,name:'0.75'},
					{choose:true,name:'1.0'},
					{choose:false,name:'1.25'},
					{choose:false,name:'1.5'},
					{choose:false,name:'1.75'},
					{choose:false,name:'2.0'},
					{choose:false,name:'2.5'},
				],
				sudu:'1.0' ,//播放速度 默认1.0X
				
				isZH:false, // 是否中文朗读 默认false否
				issj:true, // 是否随机播放 默认true是
				isbofang:true, // 是否自动播放 默认true是
			}
		},
		onLoad(option) {
			let that = this;
			uni.getSystemInfo({
				success: function (res) {
					that.winheight = res.windowHeight - 80;
				}
			});
			this.videoContext = uni.createVideoContext("myVideo", this);
			this.$nextTick(() => {
				this.videoContext.play();
			});
			
		},
		methods: {
			// 选中 时间间隔,自动默认循环和开始播放
			timeFun(i){
				this.suduShow = false; // 速度false
				this.timeList.forEach((item,index) => {
						if(i == index){
							item.choose = true;
							this.time = item.time;
							this.scrollShow = false;
						} else {
							item.choose = false;
						}
				});
			},
			// 选中 速度 
			suduFun(i){
				this.scrollShow = false; // 时间false
				this.suduList.forEach((item,index) => {
						if(i == index){
							item.choose = true;
							this.sudu = item.name;
							this.suduShow = false;
							// 播放速度
							this.videoContext.playbackRate(Number(item.name))
						} else {
							item.choose = false;
						}
				});
			},
			//  当播放到末尾时触发 ended 事件,先暂停再延迟多长时间重新播放
			endedFun(){
				let that = this;
				let a = Number(this.time)*1000;
				
				this.$nextTick(() => {
					this.videoContext.pause();
				});
				
				setTimeout(function() {
						console.log('延迟时间开始播放新的视频',a);
						// that.videoContext.play();
				}, a);
			},
			
			leftClick(){
				uni.navigateBack();
			},
			// 中文朗读
			zhFun(){
				this.isZH = !this.isZH;
			},
			// 随机播放
			sjFun(){
				this.issj = !this.issj;
			},
			// 播放或暂停
			bofangFun(){
				this.isbofang = !this.isbofang;
				if(this.isbofang){
					console.log('播放');
					this.$nextTick(() => {
						this.videoContext.play();
					});
				} else {
					console.log('暂停');
					this.$nextTick(() => {
						this.videoContext.pause();
					});
				}
			},
			
		},
	}
</script>


<style lang='scss' scoped>
	.form1box{
		padding: 40rpx 16rpx 7rpx 40rpx;
		box-sizing: border-box;
		height: 100vh;
		.operate{
			box-sizing: border-box;
			display: flex;
			justify-content: space-around;
			flex-direction: column;
			color: #000000;
			font-size: 12rpx;
			font-family: MicrosoftYaHei;
			padding: 20rpx 0;
			.sudu{
				color: #B0B0B0;
				font-family: Adobe Heiti Std R;
			}
			
			.bigbox{
				position: relative;
			}
			
			.scrollbox{
				box-sizing: border-box;
				position: absolute;
				/* top: -250rpx; */
				bottom:20rpx;
				left: 0rpx;
				background-color: #fff;
				width: 148rpx;
				height: 170rpx;
				overflow: auto;
				border: 1rpx solid #000000;
				color:#B0B0B0;
				font-size: 12rpx;
				font-family: MicrosoftYaHei;
				padding: 9rpx 12rpx;
				.ac{
					color: #000000;
				}
			}
			
		}
	}
</style>

到了这里,关于【视频】横屏播放,uniapp,微信小程序,可选择播放速度,暂停和继续播放的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp - 实现微信小程序电子签名板,横屏手写姓名签名专用写字画板(详细运行示例,一键复制开箱即用)

    实现了在uniapp项目中,微信小程序平台流畅的写字签名板(也可以绘图)功能源码,复制粘贴,改改样式几分钟即可搞定! 支持自动横屏、持预览,真机运行测试非常流畅不卡顿。 如下代码所示。

    2024年02月16日
    浏览(190)
  • 微信小程序视频播放

    官方地址: https://developers.weixin.qq.com/miniprogram/dev/component/video.html binderror 视频错误信息 show-play-btn 是否显示视频底部控制栏的播放按钮 show-fullscreen-btn 是否显示全屏按钮 controls 是否显示默认播放控件 enable-play-gesture 是否开启播放手势,即双击切换播放/暂停

    2024年02月10日
    浏览(40)
  • 微信小程序实现视频播放

     博主介绍: 本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮

    2024年02月02日
    浏览(35)
  • uniapp微信小程序video不显示,无法播放

    微信小程序开发者工具video不显示,无法播放 微信开发者工具调试基础库版本太高 将微信开发者工具调试基础库改为低版本

    2024年04月10日
    浏览(81)
  • 微信小程序视频调整播放倍速

    创建 video 上下文 设置视频倍数

    2024年02月13日
    浏览(48)
  • 微信小程序安卓视频播放卡顿问题

    在微信小程序开发中遇到在video组件的两个问题 刚开始以为是网络问题,或者是视频文件问题。排查了一下发现都没问题 最后加了个属性就OK了 uniapp和原生小程序方法 video组件兼容iOS手机 custom-cache加了这个属性会让 因此我加了当前手机型号的判断 获取当前设备api 当为iPho

    2023年04月16日
    浏览(41)
  • uniapp 仿网易云音乐播放器 微信小程序

    uniapp 仿照网易云播放器功能

    2024年02月12日
    浏览(119)
  • uniapp—— 微信小程序ios上音频播放没有声音

    uniapp 打包小程序后发现 播放音频文件  没有报错, 一切正常只是没有声音,后来发现是ios手机开启了静音模式导致听不到声音,查看uniapp 文档:  发现的确有这个属性,但是设置了 之后发现并没有起作用 后来发现想要实现ios静音模式下也可以播放音频要用另一个api全局配

    2024年02月13日
    浏览(159)
  • 使用微信小程序播放视频直播

    观众端使用live-player进行直播视频的播放,live-player组件从视频云拉流,并用于实时音视频播放。live-player支持两种模式:Live和RTC,前者用于直播播放,后者用于实时音视频通话。在使用live-player组件实现直播播放前先看看live-player组件的属性以及方法。 属性定义 Src 用于音视

    2023年04月15日
    浏览(62)
  • 微信小程序 video 组件[播新视频旧视频暂停,再次播放延续上次播放时长]

    1、引言 微信官方文档网址:媒体组件 / video (qq.com) 2、播新视频旧视频暂停   问题: 多个视频同时播放的问题 需求:         1. 在点击播放的事件中需要找到上一个播放的视频         2. 在播放新的视频之前关闭上一个正在播放的视频 关键:         1. 如何

    2024年02月19日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包