健康一贴灵,专注医药行业管理信息化

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;
//取视频时间长度

posted @   一贴灵  阅读(239)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
学以致用,效率第一
点击右上角即可分享
微信分享提示