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),可以播放音视频,支持歌单添加,删除,保存操作,支持循环,顺序,随机播放. 话不多说,先来 ...
最新文章
- 在浏览器上也能训练神经网络?TensorFlow.js带你玩游戏~
- 后端开挂:3行代码 = 8个接口
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- 我对模板模式和策略模式的理解
- 科研人必备的学术导航,不看后悔!
- SecSolar:为代码“捉虫”,让你能更专心写代码
- Vue 3开发的重要提示
- DHCP服务器异常,上不了网解决办法
- PHP编译参数 --prefix=/usr/local/php 的“深远”影响
- HTML--day01
- adams2015怎么把工具栏打开_PDF怎么转成JPG?5个必备PDF操作技巧
- 把图片背景变透明(制作签名档)
- python设置excel单元格格式_Python帮你做Excel——格式设置与画图
- 如何在所有流媒体服务中搜索电影或电视节目
- 快被95后新人整疯:啥都不会,情商低,乱怼人!
- 万能遥控程序c语言,51单片机万能红外遥控解码程序
- 缺陷轰炸和beta测试详解
- linux 模拟hba卡闪断,服务器HBA卡常见问题
- 雷蛇 笔记本 装linux,顺应民意:雷蛇考虑开发Linux版Blade游戏本
- android性能优化透明,Android性能优化-图片篇