React Native (一) react-native-video实现音乐播放器和进度条的功能
React Native (一) react-native-video实现音乐播放器和进度条的功能
功能:
1.卡片滑动切歌
2.显示进度条
效果图:
第三方组件:
1.react-native-video
Github地址:https://github.com/react-native-community/react-native-video
2.react-native-animated-tabs
Github地址:https://github.com/philipshurpik/react-native-animated-tabs
下载方式:
Using npm:
npm install --save react-native-video
npm install --save react-native-animated-tabs
or using yarn:
yarn add react-native-video
yarn add react-native-animated-tabs
如果RN版本>=0.60,是自动link的,如果在0.60以下则需要手动link
运行 `react-native link react-native-video` 连接react-native-video库react-native-animated-tabs同上
卡片滑动功能
1.导入需要的组件
import AnimatedTabs from "react-native-animated-tabs";
2.使用组件
<AnimatedTabspanelWidth={getPanelWidth()}activePanel={this.state.activePanel}onAnimateFinish={activePanel => this.setState({ activePanel })}>/**此处放你的卡片<View><Image source={...}/></View>...*/</AnimatedTabs>
3.按钮切换卡片
<View style={styles.buttons}><TouchableOpacitystyle={styles.text}onPress={() => this.goToPanel(-1)}><Text>上一首歌</Text></TouchableOpacity><TouchableOpacitystyle={styles.text}onPress={() => this.goToPanel(1)}><Text>下一首歌</Text></TouchableOpacity>
4.goToPanel()函数
goToPanel(direction) {const nextPanel = this.state.activePanel + direction;if (nextPanel >= 0 && nextPanel < panelsCount) {this.setState({ activePanel: nextPanel });}}
}
这时候就可以实现滑动卡片功能了
示例图:
使用react-native-video音乐插入
1.导入需要的组件和音乐
import Video from "react-native-video";
import url1 from "../static/video/徐小明-渔歌.mp3";
2.使用组件
<Videosource={require('./background.mp4')} // 视频的URL地址,或者本地地址//source={require('./music.mp3')} // 可以播放音频//source={{uri:'http://......'}}ref='player'rate={this.state.isPlay?1:0} // 控制暂停/播放,0 代表暂停paused, 1代表播放normal.volume={1.0} // 声音的放声音的放大倍数大倍数,0 为静音 ,1 为正常音量 ,更大的数字表示放大的倍数muted={false} // true代表静音,默认为false.paused={false} // true代表暂停,默认为falseresizeMode="contain" // 视频的自适应伸缩铺放行为,contain、stretch、coverrepeat={false} // 是否重复播放playInBackground={false} // 当app转到后台运行的时候,播放是否暂停playWhenInactive={false} // [iOS] Video continues to play when control or notification center are shown. 仅适用于IOSonLoadStart={this.loadStart} // 当视频开始加载时的回调函数onLoad={this.setDuration} // 当视频加载完毕时的回调函数onProgress={this.setTime} // 进度控制,每250ms调用一次,以获取视频播放的进度onEnd={this.onEnd} // 当视频播放完毕后的回调函数onError={this.videoError} // 当视频不能加载,或出错后的回调函数style={styles.backgroundVideo}/>
3.我设置组件的一些属性
<Videoref={video => (this.player = video)}source={SONGS[this.state.activePanel].url}ref="video"paused={this.state.paused} onLoad={data => this.setDuration(data)} volume={1.0}paused={false}onEnd={() => this.goToPanel(1)}playInBackground={true}onProgress={e => this.setTime(e)}playWhenInactive={true}/>
4.用到的函数
constructor() {super();this.state = {activePanel: 0, //当前active的面板activeSong: SONGS[0], //正在播放的歌currentTime: 0.0, //当前播放的时间paused: 1.0, //播放sliderValue: 0, //进度条的进度duration: 0.0 //总时长};}//格式化音乐播放的时间为0:00formatMediaTime(duration) {let min = Math.floor(duration / 60);let second = duration - min * 60;min = min >= 10 ? min : "0" + min;second = second >= 10 ? second : "0" + second;return min + ":" + second;}//设置进度条和播放时间的变化setTime(data) {let sliderValue = parseInt(this.state.currentTime);this.setState({slideValue: sliderValue,currentTime: data.currentTime});}//设置总时长setDuration(duration) {this.setState({ duration: duration.duration });}
进度条的配置
<Sliderstyle={styles.slider}value={this.state.slideValue}maximumValue={this.state.duration}step={1}onValueChange={value => this.setState({ currentTime: value })}/>
转载于:https://www.cnblogs.com/Crystal-Zh/p/11263367.html
React Native (一) react-native-video实现音乐播放器和进度条的功能相关推荐
- 57.音乐播放器的进度条
给音乐播放器添加进度条: SeekBar:除了反应播放进度,还可以拖动 ProgressBar:只能显示当前的进度,不能进行拖动编辑 自动改变进度条 音乐播放器通过下面的方法来获取进度条的总时间和当前 ...
- C#/音乐播放器/带进度条/歌词滚动、颜色变化/桌面应用程序设计
用基本C#知识实现制作一个音乐播放器 前言 写这个博客并不是说我的作品多么高级或完美,只是希望能在一些功能方面给你们一些启发,能帮助到你们做出真正好的程序,这就足够了 话不多说,让我们开始吧~~~ 截 ...
- 【微信小程序】简易音乐播放器,进度条拖拉、音乐的播放与暂停
小程序简易音乐播放器实现 粗糙的页面设计: wxml部分: <view class="test"><view class="img">& ...
- 使用python加PyQt5,利用QMediaPlayer写一个简易的音乐播放器(进度条拖动,音量改变,播放停止切换,歌曲列表))
当你学习了python之后,总想着利用它去做些什么,无论是制作小工具还是小游戏,都是一种锻炼. 那么,利用python加上PyQt5写一个简单的音乐播放器,可能会是一个有趣的体验. 下面我会分享一下如 ...
- 微信小程序:音乐播放器带进度条
代码 JS // pages/meddledetails/meddledetails.js var config = require('../../config.js') var util = req ...
- 音乐播放器的设计与实现 功能要求:设计一款基于HTML5音频技术的音乐播放器,要求实现音乐的播放、暂停、音量大小调节、上一首和下一首切换,运行效果如图所示
本地资源在谷歌浏览器上是无法快进的.这个是重点!!!有很多解决方法,我直接用火狐就ok了 https://www.gaitubao.com/# 改图宝链接 用于修改歌曲头像 大小标准显示才正常 我用的 ...
- zepto+less写QQ音乐播放界面,进度条同步,歌词同步高亮等等(带注释,可参考可直接使用)
这是效果图,小编截下来的是静态图片,真是都是可以动的 不多说,直接上代码,注释都写在代码里清清楚楚 less @sizeMan:100%; //关键帧动画函数 .keyframes(@name:mov ...
- 使用AndriodStudio制作音乐播放器之音乐播放界面(进度条正常播放、上、下曲切换)
效果图: 思路整理: 1.要实现上.下曲切换,进度条正常播放前提首先要把音乐资源导入播放器中: 2.获取音乐的时间长度get.length 3.用seekbar获取进度条,使用线程的方法配置进度条 4 ...
- android 暂停音乐播放器,Android仿音乐播放器带进度的播放暂停按钮
因为项目需要,要做一个下载暂停开始的按钮,要求按钮上显示进度.网上找了找没有合适的,不太满意,于是自己动手写了一个. 效果如下: 主要步骤: 1.最外侧的圆环. 2.圆环内侧代表进度的圆弧. 3.暂停 ...
最新文章
- 福利 | 送你一张通往「2019 AI开发者大会」的门票
- python里面的之前打过的记忆信息-Python关键语句备忘录,拯救你的记忆
- 计算网络经典书籍--计算机网络:自顶向下方法
- 淘宝分布式调度框架TBSchedule
- python装饰器功能是冒泡排序怎么做_传说中Python最难理解的点|看这完篇就够了(装饰器)...
- WebService应用一例,带有安全验证
- src/main/resorces applicationContext.xml
- 机器学习笔记(五)——朴素贝叶斯分类
- ubuntu下使用vi是方向键变乱码 退格键不能使用的解决方法
- JAVA:hotspot 虚拟机的server和client模式
- ASP.NET Using 的几种用法
- 不同平台安装python的方式一样吗_Python软件的正确安装方式
- SpringBoot + iframe 前后端实现简单实用的下载文件、导出excel案例
- 华为主题引擎怎么下载_华为主题动态引擎
- 路由与交换技术考试常见问答
- 花了3个月,濒临崩溃的K8S集群有救了……
- SW中如何将拉伸的物体转化为钣金件
- BMP与PPM格式的转换
- Android获取移动网络信号强度
- pkg打包node服务为双击可执行二进制文件Windows x64系统
热门文章
- react-native 安装的时候遇到的问题
- 如何迁移mac电脑上的itunes备份iphone的文件
- Highcharts使用指南
- ECSHOP隐藏帮助中心文章页的评论功能方法
- 精品教程--Android组件详解
- python __slots__ [转]
- ICCV2021 香港理工、阿里达摩院提出RealVSR:视频超分任务中的新数据集与损失方案...
- ConvMLP:你见过长得像CNN的MLP吗?UOUIUC提出了用于视觉任务的层次卷积MLP
- 直播课 | 三维人体扫描与AI测量
- 伦敦帝国学院提出局部特征提取新模式D2D:先描述后检测