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

如何用libvlc在surfaceView上显示视频流的进度条?

要在SurfaceView上显示视频流的进度条,可以使用libvlc库来实现。libvlc是一个开源的多媒体框架,可以用于播放音频和视频。

以下是实现的步骤:

  1. 导入libvlc库:在项目的build.gradle文件中添加libvlc的依赖项。例如:
  2. 导入libvlc库:在项目的build.gradle文件中添加libvlc的依赖项。例如:
  3. 创建SurfaceView:在布局文件中添加一个SurfaceView元素,用于显示视频流。例如:
  4. 创建SurfaceView:在布局文件中添加一个SurfaceView元素,用于显示视频流。例如:
  5. 初始化libvlc:在Activity或Fragment中初始化libvlc库。例如:
  6. 初始化libvlc:在Activity或Fragment中初始化libvlc库。例如:
  7. 设置视频源:设置要播放的视频流源。例如:
  8. 设置视频源:设置要播放的视频流源。例如:
  9. 显示进度条:使用SeekBar来显示视频的进度条,并通过监听MediaPlayer的事件来更新进度条的位置。例如:
  10. 显示进度条:使用SeekBar来显示视频的进度条,并通过监听MediaPlayer的事件来更新进度条的位置。例如:

这样,你就可以在SurfaceView上显示视频流的进度条了。

注意:以上代码只是示例,具体实现可能需要根据你的项目需求进行调整。另外,关于libvlc的更多用法和功能,请参考官方文档:libvlc官方文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

设计并实现同时支持多种视频格式流媒体点播系统

一、设计方案   点播系统,最重要考虑因素就是“拖动”处理,关键点就是要在客户端播放器“拖动”进度条时候,服务器给客户端返回以关键帧起始视频,否则,播放器很有可能会出现花屏,甚至无法播放情况...用户不是神仙,看影片的人才不会去关注一个片子里哪些时间点是关键帧位置,用户拖动进度条位置,是非常随意,而视频并非每一秒都是关键帧,所以,播放器必须要把拖动后进度条位置,重新定位到离它关键帧之处(...点播系统中,播放器想要实现上面所说定位关键帧技术,就要知道影片关键帧列表,可是“点播”嘛,视频服务器,是边下边看,没法自己解析,只能让服务器告诉它。...Client端   相对比较简单,当然,原因是我采用了libvlc作为播放器内核,vlc对于播放网络支持,恐怕是最好,这省去了你自己写播放器工作。...libvlc接口比较简单,我就直接上代码,大家一看就明白了。   私有成员变量: ?   操作libvlc进行播放方法: ? 2.

1.5K50
  • Qt编写视频播放器(vlc内核)

    大家好,又见面了,我是你们朋友全栈君。 研究qt+vlc过程中,就想直接做个播放器用于独立项目,vlc还支持硬件加速,不过部分电脑硬件不支持除外。...用vlc内核写播放器就是快,直接调用api就行,逻辑处理和ui展示基本分分钟事情,最好加点美化那就更加完美了,市面上很多播放器是vlc内核写,或者ffmpeg写。...可执行文件下载:https://pan.baidu.com/s/1KHTsgQUvtzWa3rLB_Tmo7A 1:多线程实时播放rtsp视频 2:支持windows+linux+mac 3...9:可播放本地视频文件,支持设置帧率 10:支持h265视频+rtmp等常见视频 11:可暂停播放和继续播放 12:支持回调模式和句柄两种模式 13:自动将当前播放位置和音量大小是否静音以信号发出去...isStopVideo; //停止播放标志位 bool isReadPosition; //读取当前位置标志位 QLabel *lab; //显示播放视频标签

    1.6K10

    c#万能视频播放器(附代码)

    c#万能视频播放器 本人之前很多文章中均提到了使用libvlc为播放器内核制作播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现万能视频播放器,与大家分享一下。...它支持非常广泛媒体格式本地播放,完全可以媲美mplayer,其对视频网络处理能力更是非常强悍。libvlc就是指vlc核心,它向外提供了一系列接口,通过接口,来实现视频播放等复杂功能。...首先是libvlc一些导出函数,我注释里对它们功能都有说明 1 // 创建一个libvlc实例,它是引用计数 2 [DllImport("libvlc", CallingConvention...(IntPtr libvlc_mediaplayer); 55 56 // 解析视频资源媒体信息(时长等) 57 [DllImport("libvlc", CallingConvention...首先确定好vlc插件目录 在你代码里创建VlcPlayer对象 调用SetRenderWindow,以设置视频显示窗口,否则会变成一个独立播放窗口 调用PlayFile,即可开始播放 ?

    3.2K120

    采用libvlc做一个视频播放器(续)-注册事件回调

    一、功能介绍 在前面文章里已经介绍过,如何调用libvlc提供API快速开发一款简单视频播放器(https://juejin.cn/post/7023552394798006279) 这篇文章继续完善视频播放器基本功能...增加播放进度条、播放时间进度显示、实时获取播放过程中状态等等。 libvlc提供了事件回调,注册相应事件之后,回调里可以得到各种事件,比如: 开始播放状态、停止播放、暂停播放、播放进度等等。...实例 vlc_base=libvlc_new(0,nullptr); this->setWindowTitle("libvlc设计视频播放器"); } Widget::~Widget...() { delete ui; } //选择视频 void Widget::on_pushButton_open_clicked() { /*选择文件*/ QString filename...); /*设置给予媒体播放器媒体输出win32/win64窗口句柄*/ libvlc_media_player_set_hwnd(vlc_mediaPlayer, (void *)ui

    13100

    Qt音视频开发4-vlc读取和控制

    一、前言 vlc本身是个全功能很牛逼播放器,你能够想到播放功能他都有,比如获取视频文件长度、唱片封面、当前播放进度、设置播放进度、声音控制、静音控制等,这些vlc都给你封装好了,你直接调用对应...看vlc官方对vlc更新频率也是蛮高,所以各种新视频标准和格式出来以后,他也是不断更新完善,比如H265,8K视频等,都能正常播放,查阅vlc动态库目录可以看见,vlc部分解码用就是...你只需要在打开视频以前调用libvlc_event_attach订阅自己感兴趣事件,不需要时候比如关闭时候调用libvlc_event_detach注销订阅事件即可。...二、功能特点 多线程实时播放视频和本地视频。 支持windows+linux+mac,支持vlc2和vlc3。 多线程显示图像,不卡主界面。 自动重连网络摄像头。...支持h265视频+rtmp等常见视频。 可暂停播放和继续播放。 支持回调模式和句柄两种模式。 支持线程读取进度等信息和事件回调两种处理模式。 自动将当前播放位置和音量大小是否静音以信号发出去。

    1.1K30

    Qt音视频开发3-vlc录像存储

    一、前言 录像功能是视频监控系统常用功能,就是将打开视频或者视频文件重新保存成MP4文件,当然也可以保存成其他格式,一般默认用MP4比较好,比较标准一些,MP4格式兼容性最好,基本没有说那台电脑不能播放...vlc录像功能是内置封装好,在打开文件前面设置相应命令参数即可,如果只是要求整个过程保存成一个视频文件,这个很好办,网上方法一大堆,只要调用libvlc_media_add_option函数设置...保存成单个视频文件,这个没有任何问题和难度,但是视频监控领域中经常需要是定时保存成单个文件,比如30分钟一个视频文件,这样方便检索,而且也不会看起来一个视频文件很大很大,毕竟视频监控是7*24小时运行...二、功能特点 多线程实时播放视频和本地视频。 支持windows+linux+mac,支持vlc2和vlc3。 多线程显示图像,不卡主界面。 自动重连网络摄像头。...支持h265视频+rtmp等常见视频。 可暂停播放和继续播放。 支持回调模式和句柄两种模式。 支持线程读取进度等信息和事件回调两种处理模式。 自动将当前播放位置和音量大小是否静音以信号发出去。

    1.1K60

    一种“ Android 设备,播放视频同时,获取实时音频有效方案

    这篇文章将会按照一般需求开发流程,从需求、分析、开发,到总结,来给大家讲解一种“ Android 设备,播放视频同时,获取实时音频有效方案。...一、需求 在车载产品,有这样一种需求,比如我把我Android设备通过usb线连接上车机,这时我希望我我Android手机上操作,能同步到车机大屏上进行显示。...接下来我们再了解下,Android系统,声音播放流程是怎样?这对我们如何去获取视频播放时候音频,很有帮助。 我们先看下关于视频播放、录音,Android给我们提供了哪些API?...那么回到文章重点,我们需要在播放视频时候,把视频音频实时截取出来。那截取音频这部分工作,就可以放在AudioTrack.cpp中进行处理。...另一个就是接收端,不停接收发送出来socket数据,这个socket数据就是实时pcm,接收方,实时播放pcm,就能实现音频实时同步了。 关于视频,是如何实现同步,大家也可以猜猜?

    2.1K40

    QT应用编程:基于VLC开发音视频播放器(句柄方式)

    支持鼠标点击进度条跳转到指定帧 2. 支持音量设置、静音设置 3. 支持加载视频、暂停、停止、重播 4. 播放速率设置 5....播放总时间与当前时间显示 完整项目代码下载地址: https://download.csdn.net/download/xiaolong1126626497/16579867 二、下载VLCSDK..."); //VLC相关初始化 vlc_base=libvlc_new(0, nullptr); //创建并初始化libvlc实例 if(!...vlc_mediaPlayer, (void *)ui->widget_VideoPlay->winId()); //如果不使用句柄方式,VLC也支持回调方式处理图像,这种方式可以自己提取图像数据,自己渲染显示处理...,0,&width,&height); qDebug()<<"视频尺寸:"<<"width:"<<width<<"height:"<<height; /*获取媒体播放器使用媒体。

    1.3K31

    Qt音视频开发5-vlc事件订阅

    ,所以如果在事件回调中发现一些事件没有拿到,首先要检查下到底订阅了没有,所有事件枚举libvlc_events.h头文件中可以查阅到,都用是通俗易懂全英文单词描述,有过基本英语能力开发人员都能看懂...调用libvlc_event_attach订阅事件时候,第三个参数指定事件回调函数,第四个参数传入用户数据,一般是用来传入类指针,这样事件回调时候,可以直接拿到并转换为类指针,然后使用类中方法...二、功能特点 多线程实时播放视频和本地视频。 支持windows+linux+mac,支持vlc2和vlc3。 多线程显示图像,不卡主界面。 自动重连网络摄像头。...支持h265视频+rtmp等常见视频。 可暂停播放和继续播放。 支持回调模式和句柄两种模式。 支持线程读取进度等信息和事件回调两种处理模式。 自动将当前播放位置和音量大小是否静音以信号发出去。...支持存储单个视频文件和定时存储视频文件。 自定义顶部悬浮条,发送单击信号通知,可设置是否启用。

    72840

    Qt音视频开发1-vlc解码播放

    一、前言 最开始接触视频监控这块时候,用就是vlc作为解码内核,主要是因为vlc使用简单方便,直接传入一个句柄即可,简单几行代码就可以实现一个视频流播放,很适合初学者使用,也推荐初学者用qt+vlc...所有用vlc做视频监控解码的人都会遇到一个问题,那就是鼠标事件被接管拦截了,不能识别鼠标事件,比如双击最大化等,这就很憋屈了,明明很好用一个东西,怎么突然之间鼠标事件也识别不到了呢,网上一搜一大把,主要有三个解决办法...设置句柄以后直接将控件/接受视频渲染控件禁用掉。...二、功能特点 多线程实时播放视频和本地视频。 支持windows+linux+mac,支持vlc2和vlc3。 多线程显示图像,不卡主界面。 自动重连网络摄像头。...支持h265视频+rtmp等常见视频。 可暂停播放和继续播放。 支持回调模式和句柄两种模式。 支持线程读取进度等信息和事件回调两种处理模式。 自动将当前播放位置和音量大小是否静音以信号发出去。

    1.2K00

    RTSP视频显示(海康威视)

    大家好,又见面了,我是你们朋友全栈君。 RTSP视频显示(海康威视) VLC 网页显示 VLC-Qt库 SDK(C++) 本文使用环境如下: SDK下载。...,下载下来安装并运行: 填地址就是摄像头RTSP视频地址,然后点串流: 左上角是这样说明就已经转换了: 网页显示 注意资源地址,同一局域网下要访问就需要把localhost...VLC-Qt库 知道视频地址情况下可以使用插件库来解码视频,到官网下载需要库文件: 下载完成后解压出来有如下3个文件夹: include:包含了所需头文件 lib:包含所需 lib...直接使用ffmpeg解码视频 这里对这个demo作者表示感谢,写得确实已经很精简了,也就不说了,作者提到关闭Shadow build: 测试中发现有时候显示会有一半模糊具体原因还不太清除:...AppEmit 传送门 下载解压后,尝试运行demo获取rtsp视频: 依次点击1、3即可看到画面,2位置输入框需要按规则输入包含rtsp视频地址信息json格式描述,页面中列举了简单测试案例

    2.6K10

    SurfaceView 与 TextureView 详解

    SurfaceView 就是 Window 挖一个洞,它就是显示在这个洞里,其他View是显示Window,所以View可以显式 SurfaceView之上,你也可以添加一些层SurfaceView...所以它优点就是可以独立线程中绘制,不影响主线程,而且使用双缓冲机制,播放视频时画面更顺畅。...SurfaceTexture 是从Android 3.0开始加入,与SurfaceView不同是,它对图像处理并不直接显示,而是转为GL外部纹理,因此用于图像数据二次处理。...与 SurfaceView 相比,TextureView 具有更出色 Alpha 版和旋转处理能力,但在视频以分层方式合成界面元素时,SurfaceView 具有性能方面的优势。...SurfaceView如果为用户可见时候,创建SurfaceViewSurfaceHolder用于显示视频解析帧图片,如果发现SurfaceView变为用户不可见时候,则立即销毁SurfaceView

    12.6K60

    如何对EasyNVR分发出rtsp流进行抓包分析?

    EasyNVR视频监控综合管理平台支持多种格式视频直播播放,包括HLS、FLV、RTSP等,今年我们在此基础又开发了WebRTC格式播放。...EasyNVR功能为拉取RTSP分发出HLS、HTTP-FLV、RTMP、RTSP等流,为了熟悉RTSP,因此针对RTSP流进行抓包分析。...以下代表为视频,控制streamid=0,并且对应类型为96: DESCRIBE rtsp://192.168.99.162:5544/live/YKiavBi7g RTSP/1.0 CSeq:...sizelength=13;indexlength=3;indexdeltalength=3; config=1190 a=control:streamid=1 三、获取传输端口及通道 以下streamed=0,代表为视频服务端端口为...一般音频存在时候会有多个mark数据。 传输视频,使用是30004端口,对应类型96,代表为视频类型。

    55720

    海康威视rtsp取地址(海康威视设置教程)

    大家好,又见面了,我是你们朋友全栈君。 RTSP视频显示(海康威视) VLC 网页显示 VLC-Qt库 SDK(C++) 本文使用环境如下: SDK下载。...,下载下来安装并运行: 填地址就是摄像头RTSP视频地址,然后点串流: 左上角是这样说明就已经转换了: 网页显示 注意资源地址,同一局域网下要访问就需要把localhost...VLC-Qt库 知道视频地址情况下可以使用插件库来解码视频,到官网下载需要库文件: 下载完成后解压出来有如下3个文件夹: include:包含了所需头文件 lib:包含所需 lib...直接使用ffmpeg解码视频 这里对这个demo作者表示感谢,写得确实已经很精简了,也就不说了,作者提到关闭Shadow build: 测试中发现有时候显示会有一半模糊具体原因还不太清除:...AppEmit 传送门 下载解压后,尝试运行demo获取rtsp视频: 依次点击1、3即可看到画面,2位置输入框需要按规则输入包含rtsp视频地址信息json格式描述,页面中列举了简单测试案例

    21K30

    如何对EasyNVR分发出RTSP流进行抓包分析?

    EasyNVR视频监控综合管理平台支持多种格式视频直播播放,包括HLS、FLV、RTSP等,今年我们在此基础又开发了WebRTC格式播放。...EasyNVR功能为拉取RTSP分发出HLS、HTTP-FLV、RTMP、RTSP等流,为了熟悉RTSP,因此针对RTSP流进行抓包分析。...以下代表为视频,控制streamid=0,并且对应类型为96: DESCRIBE rtsp://192.168.99.162:5544/live/YKiavBi7g RTSP/1.0 CSeq:...sizelength=13;indexlength=3;indexdeltalength=3; config=1190 a=control:streamid=1 三、获取传输端口及通道 以下streamed=0,代表为视频服务端端口为...image.png 一般音频存在时候会有多个mark数据。 image.png 传输视频,使用是30004端口,对应类型96,代表为视频类型。

    61440

    视频无缝续播一些解决方案

    事实我并不是自由工作者,我也是众多打工大军中平平凡凡一员,只是之前找工作,除了出去面试就是整理一下以前学习过一些技术要点,顺带发表共享一下而已。...时候需要将暂停时那一帧图像绘制到新surfaceView,播放完毕也是同理。...,需要重新把surfaceView设置成RecyclerView条目中surfaceView,那么这时就需要将视频最后一帧图像渲染到新surfaceView。...总的来说就是需要保证播放器surfaceView切换前和切换后显示图像内容是一样。这个是一个重难点。...多个播放器方案: 点击切换码时候,让原来播放器继续工作,然后新开一个播放器后台异步准备新播放源,准备完毕后,使用新播放器seek到原来播放器播放时间位置,最后显示播放器,隐藏并销毁原来旧播放器

    2.3K10

    surfaceView+MediaPlayer问题

    没有准备好之前,可以设置他不停加载把 5.播放失败,或者直接闪屏原因之一:就是从一个视频activity或者view到另外一个视频view播放,如果时间比较紧凑,可能会立即失败,或者闪退,这里面的原因就是...,可能会出现这个元,如果是原生态可能就不会,解决方法就是 第二个视频延迟播放,或者跳转时候稍微延迟,或者播放视频时候弹出正在加载,让那个进度条延迟一秒旋转时间,再播放,应该可以解决这个问题【http...surfaceView相关概念: MediaPlayer主要用于播放音频,它是没有提供输出图像输出界面,这时我们就用到了SurfaceView控件,将它与MediaPlayer结合起来,就能达到了视频输出了...lockCanvas (Rect dirty) 锁定SurfaceViewRect划分区域,获取该SurfaceCanvas public abstract void unlockCanvasAndPost...这样理解: SurfaceView它用于显示,SurfaceHolder就是用于用来管理这个显示SurfaceView对象,但在SurfaceHolder是怎么样去管理这个对象呢?

    2.1K20
    领券