首页 > 编程语言 >c# 取视频播放时长

c# 取视频播放时长

时间:2024-10-29 14:21:17浏览次数:4  
标签:视频 c# double list videoDuration mediaInfo 播放

最近做一个自动播放指定目录中图片及视频的程序,图片指定显示10秒,视频文件播放时需取得视频的时长(可能是图片播放采用了线程的原因);

最终实现方法

1、通过Nuget安装 

Xabe.FFMpeg


2、引用

using Xabe.FFmpeg;

 

3、实现代码,视频播放采用了vlc

                      if (fileFormat == "mp4" || fileFormat == "avi")
                        {
                            // 取视频总时长
                            IMediaInfo mediaInfo = await FFmpeg.GetMediaInfo(list[i]);
                            var videoDuration = mediaInfo.VideoStreams.First().Duration;
                            //TimeSpane 格式转换为double
                            double videoLength = videoDuration.TotalSeconds * 1000;
                            //取视频时间长度
                            this.Invoke(new Action(() =>
                            {
                                pictureBox1.Visible = false;
                                vlcControl1.Visible = true;
                            }));
   
                vlcControl1.SetMedia(new System.IO.FileInfo(list[i]));
                vlcControl1.Play();
                Thread.Sleep((int)videoLength);

 

// 取视频总时长
IMediaInfo mediaInfo = await FFmpeg.GetMediaInfo(list[i]);
var videoDuration = mediaInfo.VideoStreams.First().Duration;
//TimeSpane 格式转换为double
double videoLength = videoDuration.TotalSeconds * 1000;
//取视频时间长度

标签:视频,c#,double,list,videoDuration,mediaInfo,播放
From: https://www.cnblogs.com/lrzy/p/18513078

相关文章

  • 最短的可以造成崩溃且编译器无法优化掉的 C代码是什么
    在C语言中,编写能够造成崩溃且难以被编译器优化掉的代码通常涉及到未定义的行为(undefinedbehavior)或者对底层内存的非法操作。应当注意的是,未定义的行为是C和C++中应该避免的,因为它使得程序的行为无法预测,可能导致不同编译器或不同平台上产生不同的结果。一、最短的可以造成崩......
  • LeetCode 202 - 快乐数
    题目描述编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或者进入一个无限循环但始终变不到1。如果这个过程的结果为1,那么这个数就是快乐数。如果 n 是快乐......
  • nginx 代理 WebSocket 配置
    Nginx代理WebSocket配置1.配置文件位置Nginx配置文件通常位于/etc/nginx/nginx.conf,也可以在/etc/nginx/conf.d/下创建新的配置文件,例如websocket.conf。2.基本配置结构http{upstreamwebsocket{serverlocalhost:9301;#定义上游WebSocket服......
  • 萤石设备视频接入平台EasyCVR私有化部署视频平台高速公路视频上云的高效解决方案
    经济的迅猛发展带来了高速公路使用频率的激增,其封闭、立交和高速的特性变得更加显著。然而,传统的人工巡查方式已不足以应对当前高速公路的监控挑战,监控盲点和响应速度慢成为突出问题。比如,非法占用紧急车道的情况屡见不鲜,却因缺乏即时监控和确凿证据,给执法带来了不小的挑战。在许......
  • Educational Codeforces Round 163 (Rated for Div. 2) - VP记录
    Preface这次难度感觉挺平均的,前面的题不水,后面的题也不毒瘤(可能是因为我做的不够后面)A.SpecialCharacters开局构造题。因为特殊字符一定是成对出现的(包括两边的,可以分类讨论思考一下),所以只有\(n\)为偶数的时候才有解。然后直接以AABBAABB...的格式输够\(n\)个就行了......
  • Mooc下载器:中国大学mooc慕课视频课件课程下载工具,如何在电脑端下载中国大学mooc慕课视
    一.安装中国大学mooc慕课课程下载器1.获取学无止下载器https://www.xuewuzhi.cn/icourse163_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。二.使用说明1.学无......
  • VS Code JS TS 代码提示 图标含义
    VSCodeJavaScript/TypeScript代码提示的每个图标都有它的名字和故事。......
  • CesiumJS 案例 P11:添加图片图层异常、添加标记、添加标记并指定大小、添加标记并指定
    CesiumJSCesiumJSAPI:https://cesium.com/learn/cesiumjs/ref-doc/index.htmlCesiumJS是一个开源的JavaScript库,它用于在网页中创建和控制3D地球仪(地图)一、添加图片图层异常<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="UTF-8"/>......
  • CesiumJS 案例 P10:带边框的图片图层(Entity polyline 实现、Entity polygon 实现、Enti
    CesiumJSCesiumJSAPI:https://cesium.com/learn/cesiumjs/ref-doc/index.htmlCesiumJS是一个开源的JavaScript库,它用于在网页中创建和控制3D地球仪(地图)一、带边框的图片图层(Entitypolyline)<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="U......
  • .NET云原生应用实践(四):基于Keycloak的认证与授权AL
    合集-.NET云原生应用实践(4)1..NET云原生应用实践(二):Sticker微服务RESTfulAPI的实现10-132..NET云原生应用实践(一):从搭建项目框架结构开始10-093..NET云原生应用实践(三):连接到PostgreSQL数据库10-224..NET云原生应用实践(四):基于Keycloak的认证与授权10-28收起本章目标完成Keyclo......