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)

相关推荐

  • C#使用for循环移除HTML标记

    移除一段文字中的HTML标记,以消除其中包含的样式和段落等,最常用的办法可能就是正则表达式了.但是请注意,正则表达式并不能处理所有的HTML文档,所以有时采用一个迭代的方式会更好,如for循环. 看下面的代码: using System; using System.Text.RegularExpressions; /// <summary> /// Methods to remove HTML from strings. /// </summary> public static c

  • c#入门之循环语句使用详解(for循环、do/while)

    记得第一次学编程的时候,就听说过一句话:"新手学习和掌握一门编程语言是很容易的,但是如果你学会了某种编程语言,再去学习新的语言,就很难掌握了",现在深深地感受到了这方面的阻力. 其实流程控制.循环,包括面向对象这些知识,基本所有语言都是相通的,唯一的区别就在于书写时的格式.规范不一致.而这些方面的差异,又是比较细微的,所以往往在学的时候依靠经验能很快理解,但过后却发现并未能使(掌)用(握). do / while 循环的意义,其实就是重复执行语句,当然,还会有相应的条件判断,不然就成死

  • C#使用foreach语句简单遍历数组的方法

    本文实例讲述了C#使用foreach语句简单遍历数组的方法.分享给大家供大家参考.具体如下: using System; public class jb51demo { public static void Main() { int sum = 0; int[] nums = new int[10]; // give nums some values for(int i = 0; i < 10; i++) nums[i] = i; // use foreach to display and su

  • C#中foreach语句使用break暂停遍历的方法

    本文实例讲述了C#中foreach语句使用break暂停遍历的方法.分享给大家供大家参考.具体分析如下: 下面的代码演示了在C#中使用foreach时如何通过break语句暂停数据遍历 using System; public class w3demo { public static void Main() { int sum = 0; int[] nums = new int[10]; // give nums some values for(int i = 0; i < 10; i++) n

  • C#使用foreach循环遍历数组完整实例

    本文实例讲述了C#使用foreach循环遍历数组的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //声明数组. 第一种方法. 声明并分配元素大小. int[] Myint

  • C#中for循环、while循环循环执行的方法

    先给大家介绍下C#中的循环执行for循环 在这一节练习中,我们向大家介绍一下C#中的另一种重要的循环语句,for循环. for(表达式1;表达式2;表达式3) { 循环体 } 表达式1:一般为赋值表达式,给控制变量赋初值: 表达式2:逻辑表达式,循环控制条件:当条件为真时,循环执行循环体中的语句. 表达式3:一般为赋值表达式,给控制变量增量或减量. 这样看起来是不是挺抽象的.通过实际的例子,你会非常容易理解for循环. 你创建一个项目.解决方案名称为Sloution18,项目名称为Exercis

  • C#使用foreach遍历哈希表(hashtable)的方法

    本文实例讲述了C#使用foreach遍历哈希表(hashtable)的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collection; namespace HashSampleApplication1 { class Program { static void Main() { Hashtable hash = new Hashtable(); hashtable[1] = "kaka"; hashtable[2] = &qu

  • C# for循环的经典案例集锦

    由于for循环可以通过控制循环变量的初始值和循环结束条件来改变遍历的区间,所以在排序或者遍历的时候,利用for循环就比较简单,以下是本人学习后得到的一些总结案例. 1.排序的应用 1)交换排序:通过取出的数和该数位置后面剩余的其他数逐一进行比较,将最大的或者最小的一个数放在一组数的首位,然后再将第二大的数放在第二位,依次排完所有的数. for(int i = 0; i < (num.length - 1); i ++) { for(int j = i + 1; j < num.length;

  • C#中循环语句:while、for、foreach的使用

    循环结构可以实现一个程序模块的重复执行,它对于我们简化程序,更好地组织算法有着重要的意义.C#为我们提供了若干种循环语句,分别适用于不同的情形,下面依次介绍. C#中循环语句:while.for.foreach 1.while循环 static void Main(string[] args) { int[] hs = { 1,2,3,4,5,6,7,8,9}; int ligh = hs.Length; while (ligh > 0) { Console.WriteLine(hs[ligh

  • 浅谈C#中的for循环与foreach循环

    for循环和foreach循环其实可以算得上是从属关系的,即foreach循环是可以转化成for循环,但是for循环不一定能转换成foreach循环. 下面简单介绍一下两种循环: 1.for循环 代码格式: for(表达式1;循环条件;表达式2) { 循环体 } 代码含义: 首先运行表达式1; 然后判断条件是否为真,如果为真,则执行循环体,执行完后再运行表达式2: 接着再判断循环条件--直到循环条件为假才会结束循环. 注意事项: 表达式1:可以是任何代码,一定会执行且只会执行一次: 表达式2:可

随机推荐