zoukankan      html  css  js  c++  java
  • C# Winform WindowsMediaPlayer控件

    要做一个视频无缝切换的程序,所谓无缝就是在一个视频结束时立即开始另一个视频,中间不要有切换的黑屏

    实现思路是放两个wmp播放控件,其中每个时刻只有一个在播放,另外一个处于暂停状态,并隐藏

    当一个视频播放完后,切换显示另一个视频,同时这个视频隐藏起来并加载下一段视频,视频加载完成后(wmp会有事件通知)暂停

    这样就去除了加载时的短暂空挡

    有时可能会有键盘鼠标事件影响wmp的状态,所以使用定时器虽然监测wmp的播放状态

    private void Form1_Load(object sender, EventArgs e)
            {
                timer1.Enabled = true;
                wmp1.URL = ConfigurationManager.AppSettings["File1Path"];
                wmp2.URL = ConfigurationManager.AppSettings["File1Path"];
                playnow = 1;
    
                wmpnow = 1;
                wmp1.Visible = true;
                wmp2.Visible = false;
    
                wmp1pause = 0;
                wmp2pause = 0;
                
            }
     private bool isFullScreen = false;
            private int playnow = 1;
            private int wmp1pause = 0;
            private int wmp2pause = 0;
            private int wmpnow = 1;
    
            private void timer1_Tick(object sender, EventArgs e)
            {            
                if (wmp1.Ctlcontrols.currentPosition == 0)
                    wmp1.Ctlcontrols.play();
                else
                {
                    if (wmp1.Ctlcontrols.currentPosition > 0 && wmp1pause==0 && wmpnow==2)
                    {
                        if (playnow == 2)
                        {
                            wmp1.Visible = true;
                            wmp1.settings.volume = wmp2.settings.volume;
                            wmpnow = 1;
    
                            playnow = 1;
                            wmp2.Visible = false;
                            wmp2.Ctlcontrols.stop();
                            wmp2pause = 0;
                        }
                        else
                            wmp1.Ctlcontrols.pause();
                        wmp1pause = 1;
                    }
                    if (wmp1.currentMedia.duration - wmp1.Ctlcontrols.currentPosition < 0.05)
                    {
                        wmpnow = 2;
                        wmp2.Visible = true;
                        wmp2.settings.volume = wmp1.settings.volume;
                        wmp2.Ctlcontrols.play();     
                   
                        wmp1.Visible = false;
                        wmp1.Ctlcontrols.stop();
                        wmp1.URL = ConfigurationManager.AppSettings["File1Path"];
                        wmp1pause = 0;
                    }
                }
                if (wmp2.Ctlcontrols.currentPosition == 0)
                    wmp2.Ctlcontrols.play();
                else
                {
                    if (wmp2.Ctlcontrols.currentPosition > 0 && wmp2pause == 0 && wmpnow==1)
                    {
                        if (playnow == 2)
                        {
                            wmp2.Visible = true;
                            wmp2.settings.volume = wmp1.settings.volume;                        
                            wmpnow = 2;
    
                            playnow = 1;
                            wmp1.Visible = false;
                            wmp1.Ctlcontrols.stop();
                            wmp1pause = 0;
                        }
                        else
                            wmp2.Ctlcontrols.pause();
                        wmp2pause = 1;
                    }
                    if (wmp2.currentMedia.duration - wmp2.Ctlcontrols.currentPosition < 0.05)
                    {
                        wmpnow = 1;
                        wmp1.Visible = true;
                        wmp1.settings.volume = wmp2.settings.volume;                    
                        wmp1.Ctlcontrols.play();                    
    
                        wmp2.Visible = false;
                        wmp2.Ctlcontrols.stop();
                        wmp2.URL = ConfigurationManager.AppSettings["File1Path"];
                        wmp2pause = 0;
                    }
                }            
            }
  • 相关阅读:
    小程序文件的作用域
    微信小程序 Image 图片实现宽度100%,高度自适应
    微信小程序中wx.setStorageSync与wx.setStorage的区别
    微信小程序常用组件
    小程序的目录结构及四种文件类型
    【转载】Java程序设计入门 (四)
    【转载】WEB工作原理简述
    【转载】持久层框架 Apache Cayenne 推介
    【转载】面向对象起步 封装、继承、多态
    【转载】Java程序设计入门 (三)
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3760956.html
Copyright © 2011-2022 走看看