需要用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 双窗口同步播放视频相关推荐

  1. windows Media Player 9.0网页播放器

    windows Media Player 9.0网页播放器 (mp3.wma.wmv.asf) 以下图片为一般播mp3.wma文件时调用windows自带播放器windows Midia Player ...

  2. 利用Windows Media Player实现倍速播放本地视频

    利用Windows Media Player实现倍速播放本地视频 背景:在这样的一个特殊时期被迫开始了网上教学,我们的老师怕网络不好,直接发了录的教学资源给我们,但是看视频吧老觉得语速慢,想调倍速,本 ...

  3. c#—如何借助windows media player控件编写播放器

    windows media player控件的常用属性和方法 以下 music player 均为windows media player控件的名字. 1.属性  1)musicPlayer.sett ...

  4. 【原】基于Windows Media Player, 写自己的播放器【有源码,可下载整个工程】

    最近有客户问我,怎么把Windows Media Player 嵌套在自己的项目中. 以前我在Delphi下玩过Windows Media Player,可是在Microsoft Visual Stu ...

  5. 在Winform(C++/CLR)平台设计的(本地在线)音乐播放器(基于WMP(Windows Media Player)控件实现)

    首先,祝贺阿根廷获得2022世界杯冠军! 文章目录 简介 功能展示 1.用户注册.登录.自定义主题 2.本地歌曲导入.播放并读取歌词文件 3.在线歌曲搜索.收藏.播放 4.歌词同步及桌面歌词 5.在线 ...

  6. 网页Windows Media Player播放器参数含义(转)

    常用网页播放器代码 我们在网页上看到的播放器无外乎WMP/RealOne/Macromedia Flash Player,其他的无非是面板不同,或者添加了其他控件,对于计算机上安装的一些播放器也都是编 ...

  7. html加入window播放器,使用 HTML 和 Windows Media Player

    使用 HTML 和 Windows Media Player 05/31/2018 本文内容 概述 使用 HTML 和 Windows Media Player 是将音频和视频与文本和图形组合在一起的 ...

  8. Windows Media Player 网页播放器 参数含义

    原文来源:http://www.blogjava.net/wangxinsh55/archive/2009/05/03/43535.html 常用网页播放器代码 我们在网页上看到的播放器无外乎WMP/ ...

  9. 音乐播放器制作一(Windows Media Player控件)

    VS2013 MFC做音乐播放器,需要使用到ActiveX控件(Windows Media Player),可以播放音视频,支持歌单添加,删除,保存操作,支持循环,顺序,随机播放.   话不多说,先来 ...

最新文章

  1. 不明白点积的几何意义
  2. 测量音叉153kHz谐振器的幅频特性
  3. 文本类文件与VS关联-实践
  4. 锤子Smartisan T1手机官方4.4.2系统内核版本号信息
  5. gitkraen_超详细!Github团队协作教程(Gitkraken版)
  6. JavaScript 对引擎、运行时、调用堆栈的概述理解
  7. MySQL大表优化技术要点科普
  8. w7电脑蓝屏怎么解决_怎么解决0x0000007b电脑蓝屏 解决0x0000007b电脑蓝屏方法【详细步骤】...
  9. struts2+spring+hibernte整合示例
  10. Android的JNI【实战教程】3⃣️--Java调用C代码
  11. Linux内核模块静态加载的顺序
  12. 转载 《Python爬虫学习系列教程》学习笔记
  13. 小程序发布提审被驳回,提示当前提审小程序代码包中地理位置相关接口wx.getLocation暂未开通
  14. 易福门流量计SA5000
  15. 四.响应解析——解析json格式
  16. Qt+OpenCV在arm板上运行实现思路
  17. 怎样才能无需训练也能成为武林高手
  18. 51Talk-Level 7 Unit 1 L3
  19. 鲁迅先生的《一件小事》
  20. 【CV】Swin Transformer:使用 Shifted Windows 的分层视觉 Transformer

热门文章

  1. android 如何学习开源项目,Android github开源项目学习之—仿知乎APP(一)
  2. 服务器、计算机、工作站三者的区别
  3. wpa_supplicant驱动移植
  4. 几楼电路精灵——Cadence Allegro 自动摆放位号
  5. 帝国cms仿今日头条小程序的基本模型的开发限于新闻模型
  6. 【计算机科学基础】翻译、编译、解释、汇编
  7. java装箱_谈谈Java的自动装箱和拆箱
  8. 网卡上两个指示灯的作用
  9. 微信小程序使用base64字体图标 (生成字体图标+将字体图标转为base64格式)
  10. MySQL中间件Atlas