美文网首页
v5 实现动态时移播放

v5 实现动态时移播放

作者: 一个灰 | 来源:发表于2024-06-27 08:43 被阅读0次

背景

有用户提出需要从当前时间前一段时间开始播放,比如 10s 前开始播放,或者 1 分钟前开始播放等。

在 v4 中有一个时光回溯功能,可以在配置中指定缓存时间,然后播放时可以指定 submode: 2来播放。

但是弊端是无法动态指定时间,v5 中实现了动态指定开始时间,每个订阅者都可以在不同的开始时间进行播放。

使用方法

通过配置文件

在配置文件中的 subscribe 配置中新增了 buffertime 配置。

global:
  subscribe:
    buffertime: 10s

不一定要放在 global 下面,这个只是一个示例,可以放在任意的插件配置下面

通过订阅的 URL参数

例如:http://localhost:8080/hdl/live/test?buffertime=10s

在 v5 中发布和订阅的 URL 参数会自动覆盖发布和订阅的配置中的值

实现原理

发布者缓存

发布者的数据会缓存在一个 RingBuffer 中,这个 RingBuffer 具有动态大小,可以根据需要扩大或者缩小

记录关键帧位置

将缓存中的关键帧记录下来,订阅者根据需要来从指定的关键帧位置进行读取

扩大缓存

如果订阅者需要比较老的数据,则需要等待缓冲,使得 RingBuffer 足够大

也可以在发布者中配置 buffertime 使得一开始就缓存足够多的数据,此时订阅者就无需再等待了。

相关文章

  • Android动态小视频设计

    一.动态流中的视频播放 1.列表中视频播放的控件实现 Android原生提供的视频播放空间VideoView ,继...

  • ubuntu18.04桌面美化之动态壁纸(视频)

    动态壁纸即把循环播放的一段视频设为桌面背景,VLC播放器即可实现效果,但是无法切换窗口,不可用。借助动态壁纸工具实...

  • viewpager触摸自动暂停播放

    我这里是实现banner自动播放,需要实现viewpager自动轮播,并且触摸时自动暂停播放。播放的照片可以缩放。...

  • 时移人移

    清代周容的笔下,有一位“芋老人”。某日,一位参加童生考试的书生,在老人屋檐下避雨。书生衣湿袖单、身形消瘦,老人请他...

  • Ant Design Pro v5 获取动态菜单与基于角色权限管

    Ant Design Pro v5 获取动态菜单与基于角色权限管理视频教程(12 个视频) 很多人问如何获取动态菜...

  • Ant Design Pro v5 获取动态菜单与基于角色权限管

    Ant Design Pro v5 获取动态菜单与基于角色权限管理视频教程(11 个视频) 很多人问如何获取动态菜...

  • 时移

    静寂的夜晚,朦胧的月光。 冷清的街道,凄清的肖邦。 初升的太阳,弥漫着花香。 雏鸟的啼叫,迎来了夕阳。 时间的年轮...

  • 前后端分离的好处

    前后端的分离也实现了前后端架构的分离,带来的好处有: *整个项目的开发权重往前移,实现真正的前后端解耦,动态资源和...

  • AVPlayer打造一个iOS原生音、视频播放器

    要实现的功能: 播放、暂停、选时播放(快进快退)、缓冲、播放时长、音频信息获取、视频首帧获取、视频更换、播放速度调...

  • ViewFlipper实现屏幕切换的效果

    多页面管理控件,可以实现页面自动播放的功能 静态引入:在layout文件中直接导入 动态导入:addView()方...

网友评论

      本文标题:v5 实现动态时移播放

      本文链接:https://www.haomeiwen.com/subject/eyxecjtx.html