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实现音乐播放器和进度条的功能相关推荐

  1. 57.音乐播放器的进度条

    给音乐播放器添加进度条: SeekBar:除了反应播放进度,还可以拖动 ProgressBar:只能显示当前的进度,不能进行拖动编辑 自动改变进度条 音乐播放器通过下面的方法来获取进度条的总时间和当前 ...

  2. C#/音乐播放器/带进度条/歌词滚动、颜色变化/桌面应用程序设计

    用基本C#知识实现制作一个音乐播放器 前言 写这个博客并不是说我的作品多么高级或完美,只是希望能在一些功能方面给你们一些启发,能帮助到你们做出真正好的程序,这就足够了 话不多说,让我们开始吧~~~ 截 ...

  3. 【微信小程序】简易音乐播放器,进度条拖拉、音乐的播放与暂停

    小程序简易音乐播放器实现 粗糙的页面设计: wxml部分: <view class="test"><view class="img">& ...

  4. 使用python加PyQt5,利用QMediaPlayer写一个简易的音乐播放器(进度条拖动,音量改变,播放停止切换,歌曲列表))

    当你学习了python之后,总想着利用它去做些什么,无论是制作小工具还是小游戏,都是一种锻炼. 那么,利用python加上PyQt5写一个简单的音乐播放器,可能会是一个有趣的体验. 下面我会分享一下如 ...

  5. 微信小程序:音乐播放器带进度条

    代码 JS // pages/meddledetails/meddledetails.js var config = require('../../config.js') var util = req ...

  6. 音乐播放器的设计与实现 功能要求:设计一款基于HTML5音频技术的音乐播放器,要求实现音乐的播放、暂停、音量大小调节、上一首和下一首切换,运行效果如图所示

    本地资源在谷歌浏览器上是无法快进的.这个是重点!!!有很多解决方法,我直接用火狐就ok了 https://www.gaitubao.com/# 改图宝链接 用于修改歌曲头像 大小标准显示才正常 我用的 ...

  7. zepto+less写QQ音乐播放界面,进度条同步,歌词同步高亮等等(带注释,可参考可直接使用)

    这是效果图,小编截下来的是静态图片,真是都是可以动的 不多说,直接上代码,注释都写在代码里清清楚楚 less @sizeMan:100%; //关键帧动画函数 .keyframes(@name:mov ...

  8. 使用AndriodStudio制作音乐播放器之音乐播放界面(进度条正常播放、上、下曲切换)

    效果图: 思路整理: 1.要实现上.下曲切换,进度条正常播放前提首先要把音乐资源导入播放器中: 2.获取音乐的时间长度get.length 3.用seekbar获取进度条,使用线程的方法配置进度条 4 ...

  9. android 暂停音乐播放器,Android仿音乐播放器带进度的播放暂停按钮

    因为项目需要,要做一个下载暂停开始的按钮,要求按钮上显示进度.网上找了找没有合适的,不太满意,于是自己动手写了一个. 效果如下: 主要步骤: 1.最外侧的圆环. 2.圆环内侧代表进度的圆弧. 3.暂停 ...

最新文章

  1. 福利 | 送你一张通往「2019 AI开发者大会」的门票
  2. python里面的之前打过的记忆信息-Python关键语句备忘录,拯救你的记忆
  3. 计算网络经典书籍--计算机网络:自顶向下方法
  4. 淘宝分布式调度框架TBSchedule
  5. python装饰器功能是冒泡排序怎么做_传说中Python最难理解的点|看这完篇就够了(装饰器)...
  6. WebService应用一例,带有安全验证
  7. src/main/resorces applicationContext.xml
  8. 机器学习笔记(五)——朴素贝叶斯分类
  9. ubuntu下使用vi是方向键变乱码 退格键不能使用的解决方法
  10. JAVA:hotspot 虚拟机的server和client模式
  11. ASP.NET Using 的几种用法
  12. 不同平台安装python的方式一样吗_Python软件的正确安装方式
  13. SpringBoot + iframe 前后端实现简单实用的下载文件、导出excel案例
  14. 华为主题引擎怎么下载_华为主题动态引擎
  15. 路由与交换技术考试常见问答
  16. 花了3个月,濒临崩溃的K8S集群有救了……
  17. SW中如何将拉伸的物体转化为钣金件
  18. BMP与PPM格式的转换
  19. Android获取移动网络信号强度
  20. pkg打包node服务为双击可执行二进制文件Windows x64系统

热门文章

  1. react-native 安装的时候遇到的问题
  2. 如何迁移mac电脑上的itunes备份iphone的文件
  3. Highcharts使用指南
  4. ECSHOP隐藏帮助中心文章页的评论功能方法
  5. 精品教程--Android组件详解
  6. python __slots__ [转]
  7. ICCV2021 香港理工、阿里达摩院提出RealVSR:视频超分任务中的新数据集与损失方案...
  8. ConvMLP:你见过长得像CNN的MLP吗?UOUIUC提出了用于视觉任务的层次卷积MLP
  9. 直播课 | 三维人体扫描与AI测量
  10. 伦敦帝国学院提出局部特征提取新模式D2D:先描述后检测