首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JAVA记录媒体视频播放进度开发 (实例干货)

搭建环境:springBoot + apache-maven-3.6.3 + mysql + Redisson3.15.4 项目背景 项目需要做一个记录视频播放进度的功能,有以下几点需要着重注意: 1...、点击视频,播放到几小时几分几秒,下次同一个人点击进来依然是当前时间段 2、当一个维度下有多个视频可以看,分开记录当前视频或者文档是否已经看完。...首先记录学习【媒体播放进度表】,应该包含: 已学习时长:用于判断当前是否已学完,当时长等于总长度三分二时。 媒体播放进度:用于返回给前端,上次已播放的位子。...既然是记录视频学习时长,所以前端肯定需要写一个定时器传json数据,为了防止调用频率太高,但又不能记录不到播放记录,所以定时时间定位15s一次。 SectionId:代表媒体视频或者文档的id。...(方便以后扩展使用) */ private Boolean first; } 准备完毕开始写接口,因为是一个节的进度记录,所以接口名称这样设计更合理: /** * 媒体进度 *

1.1K30

【Android FFMPEG 开发】FFMPEG 视频播放进度控制 ( 显示播放进度 | 拖动进度播放 )

FFMPEG 播放进度控制 II . FFMPEG 播放视频 ( 效果展示 ) III . FFMPEG 获取视频时长 IV . FFMPEG 视频播放进度获取 V ....FFMPEG 设置播放进度 I ....FFMPEG 播放进度控制 ---- FFMPEG 播放进度控制 : 为 FFMPEG 播放视频添加拖动进度条功能 , 主要包含以下两个功能 ; 第一 , 进度更新 , 视频播放过程中 , 播放的同时更新当前的播放进度..., 界面中的进度条实时显示当前的播放进度 ; 第二 , 进度控制 , 拖动进度条 , 控制视频播放进度跳转 ; 进度控制前提 : 上述功能主要用于 视频播放 , 只有完整的视频才能添加进度控制功能 ,...FFMPEG 设置播放进度 : 传入一个播放进度后 , 首先将播放进度转成微秒值 , 然后调用 av_seek_frame 方法 , 传入一系列参数 , 即可完成 FFMPEG 播放本地视频文件的进度跳转

2.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android仿音乐播放器带进度播放暂停按钮

    因为项目需要,要做一个下载暂停开始的按钮,要求按钮上显示进度。网上找了找没有合适的,不太满意,于是自己动手写了一个。 效果如下: ? 主要步骤: 1、最外侧的圆环。 2、圆环内侧代表进度的圆弧。...4、播放时在中心部位画出矩形。 5、重写onTouch方法,DOWN事件时设置播放或者暂停的状态。 6、添加一个状态监听器,在调用者中监听状态。 7、设置进度,重绘。...*/ private RectF rectF2 = new RectF(); /** 进度 */ private int progress; /** 暂停中还是播放中 */ private boolean...path.lineTo(pointC.x, pointC.y); path.close(); canvas.drawPath(path, paintC); } } /** 监听触摸DOWN时间,开始播放...,通过setProgress方法就可以设置进度

    1.1K10

    如何实现一个下载进度播放进度

    一个主要问题是动画的滞后性:当下载进度到某个点的时候,你再用250ms的动画过渡过去,这个时候已经慢了,所以很多人可能因为这个原因或者嫌麻烦,直接就不做动画了,在进度事件触发的时候直接更新进度条相应的位置...获取下载进度 ajax里面可以拿到下载进度,如下代码所示: let xhr = new XMLHttpRequest(); const downloadUrl = 'installer.dmg';...如果是播放进度条的例子,需要监听video/audio元素的timeupdate事件,这个事件的触发约250ms(实测)触发一次,可以不用节流。效果如下图所示: ?...但如果下载速度很快的时候这个问题会更加明显,在播放进度条的例子便是如果进度条很长,但是播放的视频只有10几秒,那么应该也会比较明显。...所以我们可以记录一下上一次的位置,然后加多一个偏移,如下代码所示: let diffX = (event.loaded - lastMB) / event.total * containerWidth;

    1.9K20

    android UiAutomator获取视频播放进度的方法

    本人在使用android UiAutomator做测试的时候,有时候需要统计视频播进度,然后去断言上传的进度数据正确与否。...具体的思路就是根据进度条的颜色区分,我选的红色,然后去计算各个点的数值,然后计算进度的百分比。 这是app的界面进度条的截图 ? 下面是我两次获取到的数据。 ?...InterruptedException, IOException, UiObjectNotFoundException, RemoteException { clickPiont(500, 500);//点击屏幕,显示播放进度条...bitmap = getBitmapByResourceId("com.genshuixue.student:id/view_video_coursede_control_seekbar");//获取播放空间的...: //获取视频播放进度条 public double getVideoProgress(Bitmap bitmap) { int height = bitmap.getHeight

    73420

    Android自定义View实现音频播放圆形进度

    实现思路如下: 根据播放按钮的图片大小计算出圆形进度条的大小 根据音频的时间长度计算出圆形进度条绘制的弧度 通过Handler刷新界面来更新圆形进度条的进度 具体实现过程分析: 首先来看看自定义View...RectF mRectF; //画笔 private Paint mPaint; //画笔宽度 private int mCircleStoreWidth = 3; //最大进度值...private int mMaxProcessValue = 100; //进度值 private int mProcessValue; private int width;...private int height; //播放器按钮id值 private int bitmapPlay; private int bitmapStop; //播放器按钮Bitmap...,计算出进度条的相应的坐标放入RectF对象中,RectF对象是用来表示坐标系中的一块矩形区域,用于在特定的位置画图 然后我们就可以通过重写onDraw()方法来绘制View了 @Override

    1.2K20

    基于Qt的音乐播放器(一)添加音频文件,播放音乐,更新进度

    2.实现音乐播放(QMediaPlayer类/QMediaPlaylist类) 首先在.h中定义播放器和播放列表,然后在.cpp中实现音乐播放。...3.实现进度条更新以及文件时长显示 在ui界面拖入Horizontal Bar进度条和tabel(显示文件时长) 添加相关定义和自定义的槽函数: mainwindow.h //类中添加 private...void onPositionChanged(qint64 position); //当前文件播放位置变化,更新进度显示 //播放到什么位置的信号, 参数是以毫秒来计算的。...根据进度条传入的参数 } 效果如下: ?...4.存在BUG 1.进度条每次移动一段,而不是匀速移动。 2.在音乐播放中发现存在卡顿情况,将进度条删除,则流畅运行,应该是单线程的问题,更新进度条导致了音乐播放期间的卡顿。

    6K51

    基于Qt的音乐播放器(一)添加音频文件,播放音乐,更新进度

    文章目录 1.实现音频文件对话框(QFileDialog类) 2.实现音乐播放(QMediaPlayer类/QMediaPlaylist类) 3.实现进度条更新以及文件时长显示 4.存在BUG 完整项目已上传...3.实现进度条更新以及文件时长显示 在ui界面拖入Horizontal Bar进度条和tabel(显示文件时长) 添加相关定义和自定义的槽函数: mainwindow.h //类中添加 private...void onPositionChanged(qint64 position); //当前文件播放位置变化,更新进度显示 //播放到什么位置的信号, 参数是以毫秒来计算的。...根据进度条传入的参数 } 效果如下: 4.存在BUG 1.进度条每次移动一段,而不是匀速移动。...2.在音乐播放中发现存在卡顿情况,将进度条删除,则流畅运行,应该是单线程的问题,更新进度条导致了音乐播放期间的卡顿。

    2.1K60

    iOS_音频波形图Time、Wave实现,滑动设置播放进度

    实现如下: 需要的数据源: 1、demo.mp3:音频文件 2、samplePoints 数组:每秒音量(0-1)数组,根据音频pcm采样数据文件计算出来的(遍历:每秒取一点,并记录下最大值;最后按取值为...AVPlayer:通过`addPeriodicTimeObserverForInterval:queue:usingBlock:`实现每秒回调,监听播放进度 _player = [[AVPlayer...kAudioPlayerLineSpacing:是每条Line之间的距离(可以随意设置) 所以每个刻度的间距就是:kAudioPlayerLineSpacing * 2 (因为个刻度表示2s) 四、滑动控制播放进度...(秒数), - (void)didEndDraggingY:(CGFloat)y { // 拖拽结束后,根据偏移计算时间,设置播放进度 CGFloat second = y / kAudioPlayerLineSpacing...self.player seekToTime:CMTimeMakeWithSeconds(second, NSEC_PER_SEC)]; if (self.playBtn.selected) { // 如果是播放状态则开始播放

    2K10

    【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 视频流 字幕流 节目切换 )

    ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 ) ---- 文章目录 FFmpeg 系列文章目录 一、使用 ffplay 播放视频的基本命令...二、ffplay 播放过程中的控制命令 三、测试 TS 流循环切换 音频流/视频流/字幕流/节目 一、使用 ffplay 播放视频的基本命令 ---- 使用 ffplay 播放视频的基本命令 : ffplay...视频路径 播放 " D:\ffmpeg\yuanshen.mp4 " 视频 , 进入 " D:\ffmpeg\ " 目录 , 执行如下命令 : ffplay yuanshen.mp4 命令行输出...---- 播放控制 : 逐帧播放 : S ; 向后 / 向前拖动 10 秒 : Left / Right 箭头按钮 ; 向后 / 向前拖动 1 分钟 : Down / Up 箭头按钮 ; 暂停播放 :...P , 空格 ; 按下 P 或 空格键 , 可以暂停播放 ; 停止播放 : Q , Esc ; 开始播放后 , 按下 Q 或 Esc 按键 , 可以退出播放 ; 全屏切换 : F 按键可以切换全屏 ;

    10.8K21

    PotPlayer更新后播放黑屏,进度条缩略图能查看视频内容

    可更新后却发现,原本正常播放的视频,点开以后却是黑屏状态,声音倒是不受影响,在进度条缩略图里面可以看到视频内容,但进度条+缩略图,自然也能想像得到只能走马观花了,严重影响观看体验。...但有网友对某些PotPlayer播放黑屏时的提议是切换音频输出,我试过并不适合本次故障。但我想是不是可以从视频输出这里下手呢?...默认视频渲染器是“自动选择(推荐)”,我任选了一个“内置 OpenGL 视频渲染器”,应该系统没有PotPlayer报错退出,然后选择了“内置Direct3D 11视频重染器”,确认生效后点开视频,发现能正常播放有画面了...(以上截图时播放有画面是后期补操作流程。)这里是PotPlayer正常播放时的画面。现在只能猜测新版PotPlayer对于视频渲染器的自动选择有些BUG,或许它认为黑屏播放也是正常状态。...本文同发PotPlayer更新后播放黑屏,进度条缩略图能查看视频内容-墨铺 (imopu.cn)

    75110
    领券