最近做一个自动播放指定目录中图片及视频的程序,图片指定显示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;
//取视频时间长度