C# windows media player 双窗口同步播放视频
需要用windows media player播放视频,两个摄像头从不同位置录像的视频,要一起播放,从某个给定时间段开始播放,速度为0.1
先上代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WMPLib;namespace videotest
{public partial class Form1 : Form{bool flag2 = true;public double cp;//视频开始时间public string url = "";public string url2 = "";public double changdu;//需要显示的一个业务变量public string no;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){axWindowsMediaPlayer1.URL = url;axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 0d;axWindowsMediaPlayer1.uiMode = "none";axWindowsMediaPlayer1.settings.autoStart = false;axWindowsMediaPlayer1.Ctlcontrols.play();axWindowsMediaPlayer2.URL = url2;axWindowsMediaPlayer2.Ctlcontrols.currentPosition = 0d;axWindowsMediaPlayer2.uiMode = "none";axWindowsMediaPlayer2.settings.autoStart = false;axWindowsMediaPlayer2.Ctlcontrols.play();timer1.Interval = 100;timer1.Enabled = true;label3.Text = cp.ToString();label4.Text = changdu.ToString();}private void button1_Click(object sender, EventArgs e){if (axWindowsMediaPlayer1.playState == WMPPlayState.wmppsPlaying && axWindowsMediaPlayer2.playState == WMPPlayState.wmppsPlaying){axWindowsMediaPlayer1.Ctlcontrols.pause();axWindowsMediaPlayer2.Ctlcontrols.pause();button1.Text = "播放";}else{axWindowsMediaPlayer1.Ctlcontrols.play();axWindowsMediaPlayer2.Ctlcontrols.play();button1.Text = "暂停";}}private void trackBar1_Scroll(object sender, EventArgs e){if (axWindowsMediaPlayer1.playState == WMPPlayState.wmppsPlaying && axWindowsMediaPlayer2.playState == WMPPlayState.wmppsPlaying){axWindowsMediaPlayer1.Ctlcontrols.currentPosition = trackBar1.Value/1000d;axWindowsMediaPlayer2.Ctlcontrols.currentPosition = trackBar1.Value/1000d;}}private void timer1_Tick(object sender, EventArgs e){if (axWindowsMediaPlayer1.playState == WMPPlayState.wmppsPlaying){trackBar1.Maximum = (int)(axWindowsMediaPlayer1.currentMedia.duration)*1000-1000;trackBar1.Minimum = 0;trackBar1.Value = (int)(axWindowsMediaPlayer1.Ctlcontrols.currentPosition)*1000;}if (axWindowsMediaPlayer1.playState == WMPPlayState.wmppsMediaEnded){trackBar1.Value = 0;button1.Text = "播放";}if (flag2&& axWindowsMediaPlayer1.playState == WMPPlayState.wmppsPlaying&& axWindowsMediaPlayer2.playState == WMPPlayState.wmppsPlaying){axWindowsMediaPlayer1.Ctlcontrols.currentPosition = cp;axWindowsMediaPlayer2.Ctlcontrols.currentPosition = cp;trackBar1.Value = (int)(cp*1000);axWindowsMediaPlayer1.Ctlcontrols.pause();axWindowsMediaPlayer2.Ctlcontrols.pause();axWindowsMediaPlayer1.settings.rate = 0.1;axWindowsMediaPlayer2.settings.rate = 0.1;button1.Text = "播放";flag2 = false;}label1.Text = axWindowsMediaPlayer1.currentMedia.durationString;label2.Text = TimeChange(axWindowsMediaPlayer1.Ctlcontrols.currentPosition);}private string TimeChange(double t){string res = "";int m = (int)Math.Floor(t / 60d);int s = (int)(t - m * 60d);res = m.ToString().PadLeft(2, '0')+":"+s.ToString().PadLeft(2, '0')+"."+ Math.Round(((t - m * 60d)-s),3)*1000;return res;}private void trackBar1_MouseUp(object sender, MouseEventArgs e){timer1.Enabled = true;}private void trackBar1_MouseDown(object sender, MouseEventArgs e){timer1.Enabled = false;}private void button3_Click(object sender, EventArgs e){axWindowsMediaPlayer1.Ctlcontrols.currentPosition += 3;axWindowsMediaPlayer2.Ctlcontrols.currentPosition += 3;}private void button4_Click(object sender, EventArgs e){axWindowsMediaPlayer1.Ctlcontrols.currentPosition -= 3;axWindowsMediaPlayer2.Ctlcontrols.currentPosition -= 3;}private void button2_Click(object sender, EventArgs e){axWindowsMediaPlayer1.Ctlcontrols.stop();axWindowsMediaPlayer2.Ctlcontrols.stop();trackBar1.Value = 0;}private void button5_Click(object sender, EventArgs e){axWindowsMediaPlayer1.settings.rate = 0.1;axWindowsMediaPlayer2.settings.rate = 0.1;}private void button6_Click(object sender, EventArgs e){axWindowsMediaPlayer1.settings.rate = 0.2;axWindowsMediaPlayer2.settings.rate = 0.2;}/// <param name="VideoName">视频文件pic/guiyu.mov</param>/// <param name="WidthAndHeight">图片的尺寸如:240*180</param>/// <param name="CutTimeFrame">开始截取的时间如:"1"</param>#region 从视频画面中截取一帧画面为图片public string GetPicFromVideo(string VideoName, string WidthAndHeight, string CutTimeFrame){string ffmpeg = @"ffmpeg.exe";string PicName = @"F:/"+no+".jpg"; //Server.MapPath(Guid.NewGuid().ToString().Replace("-", "") + ".jpg");System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;startInfo.Arguments = " -i " + VideoName + " -y -f image2 -ss " + CutTimeFrame + " -t 0.001 -s " + WidthAndHeight + " " + PicName; //設定程式執行參數try{System.Diagnostics.Process.Start(startInfo);return PicName;}catch (Exception err){return err.Message;}}#endregionprivate void button7_Click(object sender, EventArgs e){GetPicFromVideo(url,"1024*768", cp.ToString());}}
}
后面还用 ffmpeg.exe来做了截图功能,ffmpeg文件三件套下载在我的其他链接里
ffmpeg三件套
C# windows media player 双窗口同步播放视频相关推荐
- windows Media Player 9.0网页播放器
windows Media Player 9.0网页播放器 (mp3.wma.wmv.asf) 以下图片为一般播mp3.wma文件时调用windows自带播放器windows Midia Player ...
- 利用Windows Media Player实现倍速播放本地视频
利用Windows Media Player实现倍速播放本地视频 背景:在这样的一个特殊时期被迫开始了网上教学,我们的老师怕网络不好,直接发了录的教学资源给我们,但是看视频吧老觉得语速慢,想调倍速,本 ...
- c#—如何借助windows media player控件编写播放器
windows media player控件的常用属性和方法 以下 music player 均为windows media player控件的名字. 1.属性 1)musicPlayer.sett ...
- 【原】基于Windows Media Player, 写自己的播放器【有源码,可下载整个工程】
最近有客户问我,怎么把Windows Media Player 嵌套在自己的项目中. 以前我在Delphi下玩过Windows Media Player,可是在Microsoft Visual Stu ...
- 在Winform(C++/CLR)平台设计的(本地在线)音乐播放器(基于WMP(Windows Media Player)控件实现)
首先,祝贺阿根廷获得2022世界杯冠军! 文章目录 简介 功能展示 1.用户注册.登录.自定义主题 2.本地歌曲导入.播放并读取歌词文件 3.在线歌曲搜索.收藏.播放 4.歌词同步及桌面歌词 5.在线 ...
- 网页Windows Media Player播放器参数含义(转)
常用网页播放器代码 我们在网页上看到的播放器无外乎WMP/RealOne/Macromedia Flash Player,其他的无非是面板不同,或者添加了其他控件,对于计算机上安装的一些播放器也都是编 ...
- html加入window播放器,使用 HTML 和 Windows Media Player
使用 HTML 和 Windows Media Player 05/31/2018 本文内容 概述 使用 HTML 和 Windows Media Player 是将音频和视频与文本和图形组合在一起的 ...
- Windows Media Player 网页播放器 参数含义
原文来源:http://www.blogjava.net/wangxinsh55/archive/2009/05/03/43535.html 常用网页播放器代码 我们在网页上看到的播放器无外乎WMP/ ...
- 音乐播放器制作一(Windows Media Player控件)
VS2013 MFC做音乐播放器,需要使用到ActiveX控件(Windows Media Player),可以播放音视频,支持歌单添加,删除,保存操作,支持循环,顺序,随机播放. 话不多说,先来 ...
最新文章
- 不明白点积的几何意义
- 测量音叉153kHz谐振器的幅频特性
- 文本类文件与VS关联-实践
- 锤子Smartisan T1手机官方4.4.2系统内核版本号信息
- gitkraen_超详细!Github团队协作教程(Gitkraken版)
- JavaScript 对引擎、运行时、调用堆栈的概述理解
- MySQL大表优化技术要点科普
- w7电脑蓝屏怎么解决_怎么解决0x0000007b电脑蓝屏 解决0x0000007b电脑蓝屏方法【详细步骤】...
- struts2+spring+hibernte整合示例
- Android的JNI【实战教程】3⃣️--Java调用C代码
- Linux内核模块静态加载的顺序
- 转载 《Python爬虫学习系列教程》学习笔记
- 小程序发布提审被驳回,提示当前提审小程序代码包中地理位置相关接口wx.getLocation暂未开通
- 易福门流量计SA5000
- 四.响应解析——解析json格式
- Qt+OpenCV在arm板上运行实现思路
- 怎样才能无需训练也能成为武林高手
- 51Talk-Level 7 Unit 1 L3
- 鲁迅先生的《一件小事》
- 【CV】Swin Transformer:使用 Shifted Windows 的分层视觉 Transformer