C# winform循环播放多个视频
作者:鬼谷神奇 发布时间:2021-06-30 06:39:21
标签:C#,winform,视频
本文实例为大家分享了winform循环播放多个视频的具体代码,供大家参考,具体内容如下
环境: vs2015 +winform
首先,vs自带组件很方便,所以,用windowMediaplayer组件,如果做单曲循环播放的话,加个属性:
axWindowsMediaPlayer1.settings.autoStart = true; //设置自动播放
axWindowsMediaPlayer1.settings.setMode("loop", true); //设置循环播放
言归正传:
一:拖入组件button ,windowMediaplayer,listbox,timer
二:
List<string> fileList = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
fileList.Add(@"E:\\QLDownload\nba\\Action2.mp4");
fileList.Add(@"E:\\QLDownload\nba\\Action3.mp4");
fileList.Add(@"E:\\QLDownload\nba\\Action4.mp4");
fileList.Add(@"E:\\QLDownload\nba\\Action5.mp4");
for (int i = 0; i < fileList .Count ; i++)
{
listBox1.Items.Add(fileList [i]);
}
//默认选择第一项
this.listBox1.SelectedIndex = 0;
axWindowsMediaPlayer1 .URL = fileList [listBox1.SelectedIndex];
axWindowsMediaPlayer1 .Ctlcontrols.play();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (axWindowsMediaPlayer1 .playState == WMPLib.WMPPlayState.wmppsPlaying)
{
double d1 = Convert.ToDouble(axWindowsMediaPlayer1 .currentMedia.duration.ToString());
double d2 = Convert.ToDouble(axWindowsMediaPlayer1 .Ctlcontrols.currentPosition.ToString()) + 1;
if (d1 <= d2)
{
nextMusic(listBox1.SelectedIndex);
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
axWindowsMediaPlayer1 .settings.autoStart = false ;
}
void nextMusic(int index)
{
//listBox1.SelectedIndices.Clear();
index++;
if (index == listBox1.Items.Count)
{
index = 0;
}
axWindowsMediaPlayer1 .URL = fileList [index];
listBox1.SelectedIndex = index;
axWindowsMediaPlayer1 .Ctlcontrols.play();
}
提醒: 注意各个组件的自身属性,运行不了,及时调属性, .
由于需求原因,不让选择文件,所以在代码里,默认添加的, 并把listbox隐藏了.
问题: 下面就要解决路径问题了.如果打包,必须弄成项目路径或者网络路径, 视频文件并不支持内置资源.
0
投稿
猜你喜欢
- 1 MyBatisPlusConfigMyBatisPlus配置类。package com.config;import
- 在使用多线程过程中,可能会遇到在一些情况下必须等待子线程全部执行结束后主线程才进行下一步,做法如下: //在使用多线程过程中,可能会遇到在一
- 人机猜拳小游戏,只要用到的java面向对象的思维模式。本游戏中有游戏玩家和计算机两个参与者。玩家和计算机都有的属性是姓名和得分。共分为4个类
- 整理文档,搜刮出一个java Servlet 实现动态验证码图片的代码,稍微整理精简一下做下分享。package com.hacker;im
- 本文实例介绍了清除aspx页面缓存的程序实现方法,具体步骤如下:所有用到页面缓存的aspx页面修改以下cs,让它继承一个自定义基类(例如:P
- spring boot是个好东西,可以不用容器直接在main方法中启动,而且无需配置文件,方便快速搭建环境。可是当我们要同时启动2个spri
- 获得redis所有的key-value运行结果:redis配置文件需要序列化@Bean public RedisT
- 不用单点登录,模拟远程项目的登录页面表单,在访问这个页面的时候自动提交表单到此项目的登录action,就可以实现登录到其他系统。ssh框架项
- 一、DurationDuration主要用来衡量秒级和纳秒级的时间,使用于时间精度要求比较高的情况。先来看看Duration的定义:publ
- java8 Stream大数据量List分批处理//按每3个一组分割private static final Integer MAX_NUM
- 一、什么是默认方法,为什么要有默认方法简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法。只需在方法名前面加个default关键字
- 思想利用栈和队列都可以实现树的迭代遍历。递归的写法将这个遍历的过程交给系统的堆栈去实现了,所以思想都是一样的、无非就是插入值的时机不一样。利
- 对于多线程,大家并不陌生,对于如何创建线程也是轻车熟路,对于使用new thread和实现runable接口的方式,不再多说。这篇博文我们介
- 在一些购物商城中经常会遇到这类效果,效果图如下:先看效果图步骤一:完成对主界面main.xml的创建:<?xml version=&q
- 前言在前后端分离开发的时候我们需要用到参数校验,前端需要进行参数校验,后端接口同样的也需要,以防传入不合法的数据。1、首先还是先导包,导入p
- 我们平时使用的一些常见队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了De
- 面试题1:你了解线程池么?简单介绍一下。java提供的一个java.util.concurrent.Executor接口的实现用于创建线程池
- 本文实例为大家分享了WPF实现背景灯光随鼠标闪动的具体代码,供大家参考,具体内容如下实现效果如下:思路:将容器分割成组合三角形Path,鼠标
- 详解 Java中日期数据类型的处理之格式转换的实例概要:日期以及时间格式处理,在Java中时间格式一般会涉及到的数据类型包括Calendar
- 一、什么是IOC1)控制反转,把创建对象和对象的调用过程交给Spring 管理。2)使用IOC的目的,为了降低耦合度。二、IOC的底层原理X