c# 取视频播放时长
最近做一个自动播放指定目录中图片及视频的程序,图片指定显示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;
//取视频时间长度
活到老,学到老。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?