首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    做一个简易简单音乐播放器

    我决定从 UI 到交互逻辑都由我自己操刀,实现一个拥有基础功能(播放/暂停、切歌、进度条拖动)的播放器,再逐步加上音频可视化(用 Canvas 绘制频谱条)、播放列表管理、歌词同步,甚至是滤镜特效。...大致划分成几个功能区:音频核心功能:HTML5 audio> 元素控制播放、暂停、跳转;交互控制区:上一曲、下一曲、进度条、音量调节;Canvas 可视化:根据 FFT 频域数据绘制音频频谱条;播放列表管理...= "⏸️"; } else { audio.pause(); playBtn.innerHTML = "▶️"; }});我还添加了 audio.ontimeupdate 事件,在每次播放位置变动时实时更新进度条...进度条控制:实现拖动与自动更新双向绑定这个模块最初困扰了我一会,因为要实现两件事:播放时,进度条随时间自动推进;拖动进度条时,能改变播放位置。...("input", () => { audio.currentTime = (progress.value / 100) * audio.duration;});这样,播放和拖动就都能同步控制了。

    2.2K10

    基于react的H5音频播放器

    为此开发了组件audio.js。不过不管什么框架。逻辑都是一样的。 基础界面如下 ? 相信布局方面已经没什么问题。...> {/* 进度条 */} audio-control">...进度条的大致原理就是获取音频的当前播放时长以及音频总时长的比例,然后通过这个比例与进度条宽度相乘,可以得到当前播放时长下进度条需要被填充的宽度。...进度条以及播放按钮的布局代码大概就是这样,在css方面需要注意的就是进度条容器与进度条填充块以及进度条触点间的层级关系就好。 功能逻辑 进度动起来 播放时,currntTime是时刻变化的。...this.jump(e) }) } 移动端处理 移动端处理有三个事件回调: touchstart--负责获取触摸进度触点时触点的方位 touchmove--负责动态计算触点的拖动距离

    9K10

    js文件异步上传进度条

    进度条的应用是为了显示的告诉用户文件上传了多少,对于小文件的上传基本上应用不到进度条。...进度条主要应用于大文件的上传,在于告诉用户上传情况,不至于让用户无状态等待,增加了用户的体验,如果没有进度条,在上传过程中,用户不知道是不是卡死了,这种体验就很差了,下面我们来说一下如何在异步上传时显示进度条...其实无论是原生js写xhr,还是jq的ajax,还是axios的异步都提供了一个获取上传进度的API,首先我们来看一下原生js如何获取上传进度。...原生js获取上传进度 var fd = new FormData(); fd.append("file", document.getElementById('testFile').files[0]);...; } }); axios获取上传进度 在axios中提供了一个参数onUploadProgress,有了这个参数就可以很方便的获取上传进度了,其方法实现还是和原生js的一样,这个参数其实就是注册一个监听事件

    12.9K20

    原生JS封装拖动验证滑块你会吗?

    以下文章来源于程序员成长指北 ,作者_release 专注 Node.js 技术栈分享,从 前端 到 Node.js 再到 后端数据库,祝您成为优秀的高级 Node.js 全栈工程师。...座右铭:今天未完成的,明天更不会完成 前言 闲着没事,就想着写写原生js玩玩,在网上看了几个效果后决定做这个效果,并且使用了prototype和eventEmitter封装成了库。...最终效果 微信图片_20200911093415.gif 分析 看到这个效果我们首先应该想到和拖动有关的api: onmousedown, onmousemove, onmouseup 其次要支持用户传入放置这个组件的...">拖动滑块验证...= null //防止拖动完成后再次拖动 self.emit('complete')//emit通知使用者的回调事件 } else {

    7.1K50

    鸿蒙开发实战案例:视频横竖屏切换及进度条热区拖动

    介绍本示例介绍了@ohos.multimedia.media组件和@ohos.window接口以及使用触摸热区实现视频横竖屏切换及进度条热区拖动的功能。该场景多用于横竖屏视频等媒体播放。...在进度条上方位置横向拖动可带动进度条移动。实现步骤初始化@ohos.multimedia.media 的AVPlayer。...【OpenHarmony】Uboot 驱动加载流程12.OpenHarmony构建系统--GN与子系统、部件、模块详解13.ohos开机init启动流程14.鸿蒙版性能优化指南.......对进度条整个组件设置触摸热区...height: $r('app.string.video_screen_direction_switching_layout_200') } ] ) .gesture( // 设置拖动手势...,将距离变量与进度条变量进行绑定计算 PanGesture(new PanGestureOptions({ direction: PanDirection.Left | PanDirection.Right

    1.7K20
    领券