在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → 媒体播放器示例源码下载

媒体播放器示例源码下载

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:1.27M
  • 下载次数:24
  • 浏览次数:339
  • 发布时间:2017-06-24
  • 实例类别:C#语言基础
  • 发 布 人:crazycode
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 播放器 下载 播放 源码

同类人气实例

实例介绍

【实例简介】

【实例截图】

【核心代码】

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;//添加控件及窗体的命名空间
using System.Drawing;//添加Point的命名空间
using System.Collections;//为ArrayList添加命名空间
using System.Runtime.InteropServices;//API函数的命名空间
using System.IO;//文件操作的命名空间
//应用Scripting,在“添加引用”对话框中选中"COM"选项卡,然后选中Microsoft Scripting Runtime,单击“确定”按钮
//应用Shell32,在“添加引用”对话框中选中"COM"选项卡,然后选中Microsoft Shell Controls And Automation,单击“确定”按钮


namespace PlayApparatus
{
    class FrmClass
    {
        #region  记录窗体的实例化信息-公共变量
        public static Form F_List = new Form();
        public static Form F_Libretto = new Form();
        public static Form F_Screen = new Form();
        public static Form F_MPlay = new Form();
        #endregion

        #region  磁性窗体-公共变量
        //记录窗体的隐藏与显示
        public static bool Example_ListShow = false;
        public static bool Example_LibrettoShow = false;
        public static bool Example_ScreenShow = false;

        //记录鼠标的当前位置
        public static Point CPoint;  //添加命名空间using System.Drawing;
        public static Point FrmPoint;
        public static int Example_FSpace = 10;//设置窗体间的距离

        //Frm_Play窗体的位置及大小
        public static int Example_Play_Top = 0;
        public static int Example_Play_Left = 0;
        public static int Example_Play_Width = 0;
        public static int Example_Play_Height = 0;
        public static bool Example_Assistant_AdhereTo = false;//辅助窗体是否磁性在一起

        //Frm_ListBos窗体的位置及大小
        public static int Example_List_Top = 0;
        public static int Example_List_Left = 0;
        public static int Example_List_Width = 0;
        public static int Example_List_Height = 0;
        public static bool Example_List_AdhereTo = false;//辅助窗体是否与主窗体磁性在一起

        //Frm_Libretto窗体的位置及大小
        public static int Example_Libretto_Top = 0;
        public static int Example_Libretto_Left = 0;
        public static int Example_Libretto_Width = 0;
        public static int Example_Libretto_Height = 0;
        public static bool Example_Libretto_AdhereTo = false;//辅助窗体是否与主窗体磁性在一起

        //窗体之间的距离差
        public static int Example_List_space_Top = 0;
        public static int Example_List_space_Left = 0;
        public static int Example_Libretto_space_Top = 0;
        public static int Example_Libretto_space_Left = 0;
        #endregion

        #region  视频播放-公共变量
        public static bool Example_Size = false;
        public static int Example_X = 0;
        public static int Example_Y = 0;
        public static int Example_CursotX = 0;
        public static int Example_CursotY = 0;
        public static int Example_Width = 0;
        public static int Example_Height = 0;
        public static int Example_Right = 0;
        public static string Example_File_Size = "";
        public static double Example_TimeSizeD = 0;
        public static string Example_TimeSizeS = "";
        public static double Example_Barframe = 0;//移动条的帧数
        public static int Example_BarLeft = 0;
        public static string Example_PlayPath = "";//播放文件的路径
        public static ArrayList Example_ArrLyric = new ArrayList();
        public static int Example_LyC = 0;//存储字幕滚动的位置
        public static bool Example_ifLy = false;//是否有歌词文件
        public static ArrayList Example_FileInfoL = new ArrayList();
        public static int Example_Mode = 3;//播放模式的序号
        public static int Example_ListMark = 0;//当前列表的播放序号
        public static int Example_ListNameNark = 0;//列表中的列表名号
        public static string Example_ListNameDir = "";//当前m3u文件的路径
        public static string ImgDir = "";//图片的路径
        public static int Example_AddFileSign = 0;//添加文件的标识
        public static int Example_ListFClick = -1;//删除获取焦点的列表名称
        #endregion

        #region  检测各窗体是否连接在一起
        /// <summary>
        /// 检测各窗体是否连接在一起
        /// </summary>
        public void FrmBackCheck()
        {
            bool Tem_Magnetism = false;
            //Frm_ListBos与主窗体
            Tem_Magnetism = false;
            if ((Example_Play_Top - Example_List_Top) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Left - Example_List_Left) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Left - Example_List_Left - Example_List_Width) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Left - Example_List_Left   Example_List_Width) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Top - Example_List_Top - Example_List_Height) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Top - Example_List_Top   Example_List_Height) == 0)
                Tem_Magnetism = true;
            if (Tem_Magnetism)
                Example_List_AdhereTo = true;

            //Frm_Libretto与主窗体
            Tem_Magnetism = false;
            if ((Example_Play_Top - Example_Libretto_Top) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Left - Example_Libretto_Left) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Left - Example_Libretto_Left - Example_Libretto_Width) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Left - Example_Libretto_Left   Example_Libretto_Width) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Top - Example_Libretto_Top - Example_Libretto_Height) == 0)
                Tem_Magnetism = true;
            if ((Example_Play_Top - Example_Libretto_Top   Example_Libretto_Height) == 0)
                Tem_Magnetism = true;
            if (Tem_Magnetism)
                Example_Libretto_AdhereTo = true;

            //两个辅窗体
            Tem_Magnetism = false;
            if ((Example_List_Top - Example_Libretto_Top) == 0)
                Tem_Magnetism = true;
            if ((Example_List_Left - Example_Libretto_Left) == 0)
                Tem_Magnetism = true;
            if ((Example_List_Left - Example_Libretto_Left - Example_Libretto_Width) == 0)
                Tem_Magnetism = true;
            if ((Example_List_Left - Example_Libretto_Left   Example_Libretto_Width) == 0)
                Tem_Magnetism = true;
            if ((Example_List_Top - Example_Libretto_Top - Example_Libretto_Height) == 0)
                Tem_Magnetism = true;
            if ((Example_List_Top - Example_Libretto_Top   Example_Libretto_Height) == 0)
                Tem_Magnetism = true;
            if (Tem_Magnetism)
                Example_Assistant_AdhereTo = true;
        }
        #endregion

        #region  利用窗体上的控件移动窗体
        /// <summary>
        /// 利用控件移动窗体
        /// </summary>
        /// <param Frm="Form">窗体</param>
        /// <param e="MouseEventArgs">控件的移动事件</param>
        public void FrmMove(Form Frm, MouseEventArgs e)  //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
        {
            if (e.Button == MouseButtons.Left)
            {
                Point myPosittion = Control.MousePosition;//获取当前鼠标的屏幕坐标
                myPosittion.Offset(CPoint.X, CPoint.Y);//重载当前鼠标的位置
                Frm.DesktopLocation = myPosittion;//设置当前窗体在屏幕上的位置
            }
        }
        #endregion

        #region  计算窗体之间的距离差
        /// <summary>
        /// 计算窗体之间的距离差
        /// </summary>
        /// <param Frm="Form">窗体</param>
        /// <param Follow="Form">跟随窗体</param>
        public void FrmDistanceJob(Form Frm, Form Follow)
        {
            switch (Follow.Name)
            {
                case "Frm_ListBox"://"列表"窗体
                    {
                        Example_List_space_Top = Follow.Top - Frm.Top;
                        Example_List_space_Left = Follow.Left - Frm.Left;
                        break;
                    }
                case "Frm_Libretto"://"歌词"窗体
                    {
                        Example_Libretto_space_Top = Follow.Top - Frm.Top;
                        Example_Libretto_space_Left = Follow.Left - Frm.Left;
                        break;
                    }
            }
        }
        #endregion

        #region  磁性窗体的移动
        /// <summary>
        /// 磁性窗体的移动
        /// </summary>
        /// <param Frm="Form">窗体</param>
        /// <param e="MouseEventArgs">控件的移动事件</param>
        /// <param Follow="Form">跟随窗体</param>
        public void ManyFrmMove(Form Frm, MouseEventArgs e, Form Follow)  //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
        {
            if (e.Button == MouseButtons.Left)
            {
                int Tem_Left = 0;
                int Tem_Top = 0;
                Point myPosittion = Control.MousePosition;//获取当前鼠标的屏幕坐标
                switch (Follow.Name)
                {
                    case "Frm_ListBox":
                        {
                            Tem_Top = Example_List_space_Top - FrmPoint.Y;
                            Tem_Left = Example_List_space_Left - FrmPoint.X;
                            break;
                        }
                    case "Frm_Libretto":
                        {
                            Tem_Top = Example_Libretto_space_Top - FrmPoint.Y;
                            Tem_Left = Example_Libretto_space_Left - FrmPoint.X;
                            break;
                        }
                }
                myPosittion.Offset(Tem_Left, Tem_Top);
                Follow.DesktopLocation = myPosittion;
            }
        }
        #endregion

        #region  对窗体的位置进行初始化
        /// <summary>
        /// 对窗体的位置进行初始化
        /// </summary>
        /// <param Frm="Form">窗体</param>
        public void FrmInitialize(Form Frm)
        {
            switch (Frm.Name)
            {
                case "Frm_Play":
                    {
                        Example_Play_Top = Frm.Top;
                        Example_Play_Left = Frm.Left;
                        Example_Play_Width = Frm.Width;
                        Example_Play_Height = Frm.Height;
                        break;
                    }
                case "Frm_ListBox":
                    {
                        Example_List_Top = Frm.Top;
                        Example_List_Left = Frm.Left;
                        Example_List_Width = Frm.Width;
                        Example_List_Height = Frm.Height;
                        break;
                    }
                case "Frm_Libretto":
                    {
                        Example_Libretto_Top = Frm.Top;
                        Example_Libretto_Left = Frm.Left;
                        Example_Libretto_Width = Frm.Width;
                        Example_Libretto_Height = Frm.Height;
                        break;
                    }
            }

        }
        #endregion

        #region  存储各窗体的当前信息
        /// <summary>
        /// 存储各窗体的当前信息
        /// </summary>
        /// <param Frm="Form">窗体</param>
        /// <param e="MouseEventArgs">控件的移动事件</param>
        public void FrmPlace(Form Frm)
        {
            FrmInitialize(Frm);
            FrmMagnetism(Frm);
        }
        #endregion

        #region  窗体的磁性设置
        /// <summary>
        /// 窗体的磁性设置
        /// </summary>
        /// <param Frm="Form">窗体</param>
        public void FrmMagnetism(Form Frm)
        {
            if (Frm.Name != "Frm_Play")
            {
                FrmMagnetismCount(Frm, Example_Play_Top, Example_Play_Left, Example_Play_Width, Example_Play_Height, "Frm_Play");
            }
            if (Frm.Name != "Frm_ListBox")
            {
                FrmMagnetismCount(Frm, Example_List_Top, Example_List_Left, Example_List_Width, Example_List_Height, "Frm_ListBox");
            }
            if (Frm.Name != "Frm_Libretto")
            {
                FrmMagnetismCount(Frm, Example_Libretto_Top, Example_Libretto_Left, Example_Libretto_Width, Example_Libretto_Height, "Frm_Libretto");
            }
            FrmInitialize(Frm);
        }
        #endregion

        #region  磁性窗体的计算
        /// <summary>
        /// 磁性窗体的计算
        /// </summary>
        /// <param Frm="Form">子窗体</param>
        /// <param top="int">主窗体上边距</param>
        /// <param left="int">主窗体左边距</param>
        /// <param width="int">主窗体的宽度</param>
        /// <param height="int">主窗体的高度</param>
        /// <param Mforms="string">主窗体</param>
        public void FrmMagnetismCount(Form Frm, int top, int left, int width, int height, string Mforms)
        {
            bool Tem_Magnetism = false;//判断是否有磁性发生
            string Tem_MainForm = "";//临时记录主窗体
            string Tem_AssistForm = "";//临时记录辅窗体

            //上面进行磁性窗体
            if ((Frm.Top   Frm.Height - top) <= Example_FSpace && (Frm.Top   Frm.Height - top) >= -Example_FSpace)
            {
                //当一个主窗体不包含辅窗体时
                if ((Frm.Left >= left && Frm.Left <= (left   width)) || ((Frm.Left   Frm.Width) >= left && (Frm.Left   Frm.Width) <= (left   width)))
                {
                    Frm.Top = top - Frm.Height;
                    if ((Frm.Left - left) <= Example_FSpace && (Frm.Left - left) >= -Example_FSpace)
                        Frm.Left = left;
                    Tem_Magnetism = true;
                }
                //当一个主窗体包含辅窗体时
                if (Frm.Left <= left && (Frm.Left   Frm.Width) >= (left   width))
                {
                    Frm.Top = top - Frm.Height;
                    if ((Frm.Left - left) <= Example_FSpace && (Frm.Left - left) >= -Example_FSpace)
                        Frm.Left = left;
                    Tem_Magnetism = true;
                }

                if (Tem_Magnetism == true)
                {
                    if (Frm.Left == left)
                        Tem_Magnetism = false;
                }

            }
            else
                Tem_Magnetism = false;

            //下面进行磁性窗体
            if ((Frm.Top - (top   height)) <= Example_FSpace && (Frm.Top - (top   height)) >= -Example_FSpace)
            {
                //当一个主窗体不包含辅窗体时
                if ((Frm.Left >= left && Frm.Left <= (left   width)) || ((Frm.Left   Frm.Width) >= left && (Frm.Left   Frm.Width) <= (left   width)))
                {
                    Frm.Top = top   height;
                    if ((Frm.Left - left) <= Example_FSpace && (Frm.Left - left) >= -Example_FSpace)
                        Frm.Left = left;
                    Tem_Magnetism = true;
                }
                //当一个主窗体包含辅窗体时
                if (Frm.Left <= left && (Frm.Left   Frm.Width) >= (left   width))
                {
                    Frm.Top = top   height;
                    if ((Frm.Left - left) <= Example_FSpace && (Frm.Left - left) >= -Example_FSpace)
                        Frm.Left = left;
                    Tem_Magnetism = true;
                }

                if (Tem_Magnetism == true)
                {
                    if (Frm.Left == left)
                        Tem_Magnetism = false;
                }
            }
            else
                Tem_Magnetism = false;

            //左面进行磁性窗体
            if ((Frm.Left   Frm.Width - left) <= Example_FSpace && (Frm.Left   Frm.Width - left) >= -Example_FSpace)
            {
                //当一个主窗体不包含辅窗体时
                if ((Frm.Top > top && Frm.Top <= (top   height)) || ((Frm.Top   Frm.Height) >= top && (Frm.Top   Frm.Height) <= (top   height)))
                {
                    Frm.Left = left - Frm.Width;
                    if ((Frm.Top - top) <= Example_FSpace && (Frm.Top - top) >= -Example_FSpace)
                        Frm.Top = top;
                    Tem_Magnetism = true;
                }
                //当一个主窗体包含辅窗体时
                if (Frm.Top <= top && (Frm.Top   Frm.Height) >= (top   height))
                {
                    Frm.Left = left - Frm.Width;
                    if ((Frm.Top - top) <= Example_FSpace && (Frm.Top - top) >= -Example_FSpace)
                        Frm.Top = top;
                    Tem_Magnetism = true;
                }
            }
            else
                Tem_Magnetism = false;

            //右面进行磁性窗体
            if ((Frm.Left - (left   width)) <= Example_FSpace && (Frm.Left - (left   width)) >= -Example_FSpace)
            {
                //当一个主窗体不包含辅窗体时
                if ((Frm.Top > top && Frm.Top <= (top   height)) || ((Frm.Top   Frm.Height) >= top && (Frm.Top   Frm.Height) <= (top   height)))
                {
                    Frm.Left = left   width;
                    if ((Frm.Top - top) <= Example_FSpace && (Frm.Top - top) >= -Example_FSpace)
                        Frm.Top = top;
                    Tem_Magnetism = true;
                }
                //当一个主窗体包含辅窗体时
                if (Frm.Top <= top && (Frm.Top   Frm.Height) >= (top   height))
                {
                    Frm.Left = left   width;
                    if ((Frm.Top - top) <= Example_FSpace && (Frm.Top - top) >= -Example_FSpace)
                        Frm.Top = top;
                    Tem_Magnetism = true;
                }
            }
            else
                Tem_Magnetism = false;

            //if (Frm.Left == (left-Frm.Width) || Frm.Left == ((left   width)))
            //{
            //    if ((Frm.Top   Frm.Height - top) > Example_FSpace || (Frm.Top   Frm.Height - top) < -Example_FSpace)
            //        Tem_Magnetism = false;
            //}

            //if (Frm.Top == (top-Frm.Height) || Frm.Top == ((top   height)))
            //{
            //    if ((Frm.Left   Frm.Width - left) > Example_FSpace || (Frm.Left   Frm.Width - left) < -Example_FSpace)
            //        Tem_Magnetism = false;
            //}


            if (Frm.Name == "Frm_Play")
                Tem_MainForm = "Frm_Play";
            else
                Tem_AssistForm = Frm.Name;
            if (Mforms == "Frm_Play")
                Tem_MainForm = "Frm_Play";
            else
                Tem_AssistForm = Mforms;
            if (Tem_MainForm == "")
            {
                Example_Assistant_AdhereTo = Tem_Magnetism;
            }
            else
            {
                switch (Tem_AssistForm)
                {
                    case "Frm_ListBox":
                        Example_List_AdhereTo = Tem_Magnetism;
                        break;
                    case "Frm_Libretto":
                        Example_Libretto_AdhereTo = Tem_Magnetism;
                        break;
                }
            }
        }
        #endregion

        #region  获取播放窗体的信息
        /// <summary>
        /// 获取播放窗体的信息(用于鼠标的按下事件)
        /// </summary>
        /// <param Frm="Form">窗体</param>
        /// <param e="MouseEventArgs">窗体上有关鼠标的一些信息</param>
        public void FrmScreen_SizeInfo(Form Frm, Panel Pan, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Example_Size = true;
                Example_X = e.X;
                Example_Y = e.Y;
                Example_Width = Frm.Width;
                Example_Height = Frm.Height;
                Example_CursotX = Cursor.Position.X;
                Example_CursotY = Cursor.Position.Y;
                Example_Right = Frm.Width   Frm.Left;
            }
        }
        #endregion

        #region  改变播放窗体的大小
        /// <summary>
        /// 改变播放窗体的大小(用于鼠标的移动事件)
        /// </summary>
        /// <param Frm="Form">窗体</param>
        /// <param e="MouseEventArgs">窗体上有关鼠标的一些信息</param>
        public void FrmScreen_EnlargeSize(Form Frm, Panel Pan, MouseEventArgs e, int PWidth, int PHeight)
        {
            string panelName = "";
            if (e.Button == MouseButtons.Left)
            {
                if (Example_Size == false)
                    return;
                panelName = Pan.Name;
                if (Pan.Name == "panel_BL" || Pan.Name == "panel_BZ" || Pan.Name == "panel_BR")
                    panelName = "panel_Bottom";
                switch (panelName)
                {
                    case "panel_Right":
                        {
                            if (Frm.Width >= PWidth)
                            {
                                Frm.Width = Cursor.Position.X - Frm.Left   (Pan.Width - Example_X);
                                Frm.Height = PHeight   Frm.Width - PWidth;
                                Example_CursotX = Cursor.Position.X;

                            }
                            else
                            {
                                if (Cursor.Position.X > Example_CursotX)
                                {
                                    Frm.Width = Cursor.Position.X - Frm.Left   (Pan.Width - Example_X);
                                    Frm.Height = PHeight   Frm.Width - PWidth;
                                    Example_CursotX = Cursor.Position.X;
                                }
                                else
                                {
                                    Frm.Width = PWidth;
                                    Frm.Height = PHeight;
                                    Example_Size = false;
                                }
                            }
                            break;
                        }
                    case "panel_Bottom":
                        {
                            if (Frm.Height >= PHeight)
                            {
                                Frm.Height = Cursor.Position.Y - Frm.Top   (Pan.Height - Example_Y);
                                Frm.Width = 300   Frm.Height - PHeight;
                                Example_CursotY = Cursor.Position.Y;
                            }
                            else
                            {
                                if (Cursor.Position.Y > Example_CursotY)
                                {
                                    Frm.Height = Cursor.Position.Y - Frm.Top   (Pan.Height - Example_Y);
                                    Frm.Width = PWidth   Frm.Height - PHeight;
                                    Example_CursotY = Cursor.Position.Y;
                                }
                                else
                                {
                                    Frm.Height = PHeight;
                                    Frm.Width = PWidth;
                                    Example_Size = false;
                                }
                            }
                            break;
                        }
                }

            }
        }
        #endregion

        #region  恢复窗体的初始大小
        /// <summary>
        /// 恢复窗体的初始大小(当松开鼠标时,如果窗体的大小小于300*200,恢复初始状态)
        /// </summary>
        /// <param Frm="Form">窗体</param>
        public void FrmScreen_FormerlySize(Form Frm, int PWidth, int PHeight)
        {
            if (Frm.Width < PWidth || Frm.Height < PHeight)
            {
                Frm.Width = PWidth;
                Frm.Height = PHeight;
                Example_Size = false;
            }
        }
        #endregion

        #region  窗体的隐藏与显示
        /// <summary>
        /// 窗体的隐藏与显示
        /// </summary>
        /// <param Frm="Form">窗体</param>
        public void Frm_ShowAndHide(Form Frm)
        {
            bool Tem_Bool = false;
            if (Frm.Name == "Frm_ListBox")
                Tem_Bool = Example_ListShow;
            if (Frm.Name == "Frm_Libretto")
                Tem_Bool = Example_LibrettoShow;
            if (Frm.Name == "Frm_Screen")
                Tem_Bool = Example_ScreenShow;
            if (Tem_Bool)
            {
                if (Frm.Name != "Frm_Screen")
                    for (double d = 1; d > 0; d -= 0.2)
                    {
                        System.Threading.Thread.Sleep(1);
                        Application.DoEvents();
                        Frm.Opacity = d;
                        Frm.Refresh();
                    }
                Frm.Opacity = 0;

                Frm.Hide();
                Tem_Bool = false;
            }
            else
            {
                Frm.Opacity = 0;
                Frm.Show();
                if (Frm.Name != "Frm_Screen")
                    for (double d = 0.01; d < 1; d  = 0.2)
                    {
                        System.Threading.Thread.Sleep(1);
                        Application.DoEvents();
                        Frm.Opacity = d;
                        Frm.Refresh();
                    }
                Frm.Opacity = 1;
                Tem_Bool = true;
            }
            if (Frm.Name == "Frm_ListBox")
                Example_ListShow = Tem_Bool;
            if (Frm.Name == "Frm_Libretto")
                Example_LibrettoShow = Tem_Bool;
            if (Frm.Name == "Frm_Screen")
                Example_ScreenShow = Tem_Bool;
        }
        #endregion

        #region  对列表进行格式化
        /// <summary>
        ///  对列表进行格式化
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        public void Format_ListV(ListView LV)
        {
            LV.Items.Clear();//清空所有项的集合
            LV.Columns.Clear();//清空所有列的集合
            LV.View = View.Details;//显示列名称

            LV.HeaderStyle= ColumnHeaderStyle.None;//隐藏列标题
            LV.ForeColor = Color.White;
            LV.FullRowSelect = true;//在单击某项时,对其进行选中
            LV.Columns.Add("", 18, HorizontalAlignment.Left);//设置头像
            LV.Columns.Add("歌曲名", LV.Width - 80, HorizontalAlignment.Left);//设置头像
            LV.Columns.Add("时间", 57, HorizontalAlignment.Right);//设置头像
            LV.Columns.Add("", 0, HorizontalAlignment.Right);
        }

        /// <summary>
        ///  对列表格式进行格式化
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        public void Format_ListN(ListView LV)
        {
            LV.Items.Clear();//清空所有项的集合
            LV.Columns.Clear();//清空所有列的集合
            LV.View = View.Details;//显示列名称

            LV.HeaderStyle = ColumnHeaderStyle.None;//隐藏列标题
            LV.ForeColor = Color.White;
            LV.FullRowSelect = true;//在单击某项时,对其进行选中
            LV.Columns.Add("", LV.Width-2, HorizontalAlignment.Left);//显示名称
            LV.Columns.Add("", 0, HorizontalAlignment.Right);//路径
        }

        /// <summary>
        ///  操制列表各列标题的大小
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        public void Format_ListSize(ListView LV)
        {
            LV.Columns[0].Width = 18;
            LV.Columns[1].Width = LV.Width - 80;
            LV.Columns[2].Width = 57;
            LV.Columns[3].Width = 0;
        }
        #endregion

        #region  向列表中添加歌曲信息
        /// <summary>
        /// 向列表中添加歌曲信息
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        /// <param DS="DataSet">返回查找的数据集</param>
        public void Data_List(ListView LV, string Local_Name, string Local_Time, string Local_Path)  //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
        {
            int Tem_Count = 0;
            if (LV.Items.Count == 0)
                Tem_Count = 1;
            else
                Tem_Count = LV.Items.Count   1;
            ListViewItem item = new ListViewItem(Tem_Count.ToString());
            item.SubItems.Add(Local_Name);
            item.SubItems.Add(Local_Time);
            item.SubItems.Add(Local_Path);
            LV.Items.Add(item);
            LV.Items[LV.Items.Count - 1].BackColor = Color.DarkSeaGreen;
            if (Example_AddFileSign == 1)
            {
                Local_Time = BuildSec(Local_Time);
                m3uWrite(Local_Name, Local_Time, Local_Path, Example_ListNameDir);
                Example_AddFileSign = 0;
            }
        }

        /// <summary>
        /// 向列表中添加列表名称
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        /// <param DS="DataSet">返回查找的数据集</param>
        public void Data_List(ListView LV, string Local_Name, string Local_Path)  //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
        {
            ListViewItem item = new ListViewItem(Local_Name);
            item.SubItems.Add(Local_Path);
            LV.Items.Add(item);
            LV.Items[LV.Items.Count - 1].BackColor = Color.DarkSeaGreen;
            //LV.Items[0].BackColor = Color.DarkGreen;
        }

        /// <summary>
        /// 将m3u文件的信息添加到列表中
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        /// <param Local_Name="string[]">返回查找的数据集</param>
        public void ListAddFile(ListView LV, ListView LVFile, ArrayList Array_LName)  //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
        {
            int i=0;
            string Tem_name = "";//文件名称
            string Tem_Time = "";//播放时间
            string Tem_dir = "";//播放路径
            string Tem_info = "";//临时记录
            string[] Array_Name = new string[Array_LName.Count];
            foreach (string str in Array_LName)					//遍历ArrayList集合中的元素并输出
            {
                Array_Name[i] = str;
                i = i   1;
            }
            i=0;

            while (true)
            {
                if (Array_Name[i] == "#EXTM3U")
                {
                    i = i   1;
                    continue;
                }
                if (i > Array_Name.Length - 1)
                    break;
                if (Array_Name.Length < 2)
                    break;
                if (Array_Name[i].Substring(0, 7) == "#EXTINF")
                {
                    Tem_info = Array_Name[i];
                    Tem_Time = Tem_info.Substring(Tem_info.IndexOf(':')   1, Tem_info.LastIndexOf(',') - Tem_info.IndexOf(':') - 1);
                    if (Tem_Time.IndexOf(',') > 0)
                        Tem_Time = Convert.ToString(InterceptFig(Tem_Time));
                    if (Tem_Time.Trim().Length > 0)
                        Tem_Time = GetFileTimeSec(Convert.ToInt32(Tem_Time));
                    Tem_name = Tem_info.Substring(Tem_info.LastIndexOf(',')   1, Tem_info.Length - Tem_info.LastIndexOf(',') - 1);
                    Tem_dir = Array_Name[i   1];
                    Data_List(LVFile, Tem_name, Tem_Time, Tem_dir);
                    i = i   2;
                }
                if (i > Array_Name.Length - 2)
                    break;
            }

        }

        #endregion

        #region  获取播放文件的所有信息
        /// <summary>
        /// 获取播放文件的单个信息
        /// </summary>
        /// <param strF1="string">文件路径</param>
        /// <param iIndex="int">信息索引号</param>
        public string GetFileInfo(string strF1, int iIndex)
        {
            //应用Scripting,在“添加引用”对话框中选中"COM"选项卡,然后选中Microsoft Scripting Runtime,单击“确定”按钮
            Scripting.FileSystemObject fso = new Scripting.FileSystemObject();
            Scripting.File fl;
            string pth = "";
            string flname = "";

            //应用Shell32,在“添加引用”对话框中选中"COM"选项卡,然后选中Microsoft Shell Controls And Automation,单击“确定”按钮
            Shell32.Shell shl = new Shell32.Shell();
            Shell32.Folder shfd;
            string s = "";

            fl = fso.GetFile(strF1);
            pth = fl.ParentFolder.Path;
            flname = fl.Name;

            shfd = shl.NameSpace(pth);

            if (shfd.GetDetailsOf(0, iIndex) != "" || shfd.GetDetailsOf(shfd.Items().Item(flname), iIndex) != "")
                if (shfd.GetDetailsOf(shfd.Items().Item(flname), iIndex) != "")
                    s = shfd.GetDetailsOf(shfd.Items().Item(flname), iIndex);
                    //s = shfd.GetDetailsOf(0, iIndex)   ": "   shfd.GetDetailsOf(shfd.Items().Item(flname), iIndex);
                else
                    s = "";
                return s;
        }

        /// <summary>
        /// 获取播放文件的基本信息
        /// </summary>
        /// <param strF1="string">文件路径</param>
        public ArrayList GetFileDouble(string strF1)
        {
            ArrayList List = new ArrayList();
            int[] tem_ArrInt ={ 0, 10, 16, 17, 33, 22, 21, 1 };
            string[] tem_AStr ={ "", "", "", "", "", "", "", "" };
            string[] tem_ArrStr ={ "", "标题: ", "艺术家: ", "专辑: ", "格式: ", "长度: " };
            string mp = "";
            for (int i = 0; i < tem_ArrInt.Length; i  )
            {
                tem_AStr[i] = GetFileInfo(strF1.Trim(), tem_ArrInt[i]);
            }

            if (tem_AStr[0] != "")
                mp = tem_AStr[0].Substring(tem_AStr[0].Length - 3, 3);
            if (tem_AStr[1] != "" && tem_AStr[2] != "")
                List.Add(tem_AStr[2]   "-"   tem_AStr[1]);
            else
                List.Add(tem_AStr[0]);
            if (tem_AStr[1] != "")
                List.Add(tem_ArrStr[1]   tem_AStr[1]);
            if (tem_AStr[2] != "")
                List.Add(tem_ArrStr[2]   tem_AStr[2]);
            if (tem_AStr[3] != "")
                List.Add(tem_ArrStr[3]   tem_AStr[3]);
            if (tem_AStr[4] != "" || tem_AStr[5] != "")
                List.Add(tem_ArrStr[4]   mp   " "   tem_ArrStr[4]   tem_AStr[5]);
            List.Add(tem_ArrStr[5]   GetFileTime(LongTime(strF1)));
            if (tem_AStr[7] != "")
            {
                float Tem_Size = InterceptFig(tem_AStr[7]);
                if (Tem_Size != 0)
                {
                    Example_File_Size = FormatMB(Tem_Size);
                }
            }
            return List;
        }
        #endregion

        #region  在字符串中截取数字
        /// <summary>
        /// 在字符串中截取数字
        /// </summary>
        /// <param Istr="string">包含数字的字符串</param>
        public int InterceptFig(string Istr)
        {
            string Tem_Sint = "";
            int Tem_Value=0;
            CharEnumerator Tem_CharEnum = Istr.GetEnumerator();
            while (Tem_CharEnum.MoveNext())
            {
                byte[] Tem_byte = new byte[1];
                Tem_byte = System.Text.Encoding.ASCII.GetBytes(Tem_CharEnum.Current.ToString());
                int Tem_ASCII_Code = (short)(Tem_byte[0]);
                if (Tem_ASCII_Code >= 48 && Tem_ASCII_Code <= 57)
                    Tem_Sint  = Tem_CharEnum.Current.ToString();
            }
            if (Tem_Sint != "")
                Tem_Value = Convert.ToInt32(Tem_Sint.Trim());
            return Tem_Value;
        }
        #endregion

        #region  将KB转换成MB
        /// <summary>
        /// 将KB转换成MB
        /// </summary>
        /// <param Istr="string">包含数字的字符串</param>
        public string FormatMB(float Mb)
        {
            string Tem_MB = "";
            Mb = Mb / 1024;
            if (Mb > 1)
            {
                Tem_MB = Mb.ToString();
                Tem_MB = Tem_MB.Substring(0, Tem_MB.IndexOf(",")   1)   "MB";
            }
            else
                Tem_MB = Mb.ToString()   "KB";

            return Tem_MB;
        }
        #endregion

        #region  获取文件的播放时间,并在列表中进行显示
        /// <summary>
        /// 获取文件的播放时间,并在列表中进行显示
        /// </summary>
        /// <param Millisecond="int">毫秒数</param>
        //添加using System.Runtime.InteropServices;API函数的命名空间
        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        public static extern int GetShortPathName(string lpszLongPath, string shortFile, int cchBuffer);

        [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
        public static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);

        public int LongTime(string Spath)
        {
            string Pname = "";
            string TemStr = "";
            int ilong = 0;
            string tem_str = "";
            int t = 0;
            TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));
            ilong = GetShortPathName(Spath, TemStr, TemStr.Length);
            Pname = "open "   Convert.ToChar(34)   Spath   Convert.ToChar(34)   " alias media";
            t = mciSendString(Pname, TemStr, TemStr.Length, 0);
            t = mciSendString("status "   Spath   " length", TemStr, 128, 0);
            tem_str = TemStr.Substring(0, TemStr.IndexOf("\0"));
            if (tem_str.Trim() == "")
                t = 0;
            else
                t = Convert.ToInt32(tem_str);
            return t;
        }
        #endregion

        #region  获取文件的播放时间,并按指定格式进行显示
        /// <summary>
        /// 获取文件的播放时间,并按指定格式进行显示
        /// </summary>
        /// <param Millisecond="int">毫秒数</param>
        public string GetFileTime(int Millisecond)
        {
            string Tem_Time = "";
            //double Tem_hour = 0;
            double Tem_min = 0;
            double Tem_sec = 0;
            double Tem_millisec = 0;

            Tem_min = Millisecond / 1000;
            Tem_min = Tem_min / 60.0;

            Tem_sec = Tem_min - (int)Tem_min;
            Tem_min = (int)Tem_min;
            Tem_sec = (60 * Tem_sec) / 100.0;
            Tem_sec = (int)(Tem_sec * 100);
            Tem_millisec = (int)((Millisecond - Tem_min * 60 * 1000 - Tem_sec * 1000) / 1000 * 100);
            //string Tem_Digit="";
            if (Tem_min >= 100)
            {
                Tem_Time = Tem_min.ToString("000")   ":"   Tem_sec.ToString("00");
            }
            else
                Tem_Time = Tem_min.ToString("00")   ":"   Tem_sec.ToString("00");
            return Tem_Time;
        }

        /// <summary>
        /// 获取文件的播放时间,并按指定格式进行显示
        /// </summary>
        /// <param Millisecond="int">秒数</param>
        public string GetFileTimeSec(int Millisecond)
        {
            string Tem_Time = "";
            //double Tem_hour = 0;
            double Tem_min = 0;
            double Tem_sec = 0;

            Tem_min = Millisecond / 60.0;

            Tem_sec = Tem_min - (int)Tem_min;
            Tem_min = (int)Tem_min;
            Tem_sec = (60 * Tem_sec) / 100.0;
            Tem_sec = (int)(Tem_sec * 100);
            if (Tem_min >= 100)
            {
                Tem_Time = Tem_min.ToString("000")   ":"   Tem_sec.ToString("00");
            }
            else
                Tem_Time = Tem_min.ToString("00")   ":"   Tem_sec.ToString("00");
            return Tem_Time;
        }
        #endregion

        #region  获取MP3的歌词
        /// <summary>
        /// 获取MP3的歌词
        /// </summary>
        /// <param FileName="string">歌词路径</param>
        public string[]  LRC_Lyric(string FileName)
        {
            ArrayList ArrLyric = new ArrayList();
            FileStream fs = new FileStream(@FileName, FileMode.Open, FileAccess.Read, FileShare.None);
            StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);
            sr.BaseStream.Seek(0, SeekOrigin.Begin);
            string Tem_strLine = sr.ReadLine();
            string Tem_Str = "";
            string sp = "";
            int Tem_p = 0;//记录当前[的位置
            int Tem_q = 0;//记录当前]的位置
            string Tem_Time = "";//时间
            string Tem_Slyrec = "";//歌词
            bool Tem_bool = true;//循环条件

            while (Tem_strLine != null)
            {
                Tem_bool = true;
                Tem_Str = Tem_strLine;
                sp = Tem_strLine;
                if (sp.IndexOf(Convert.ToChar("[")) == -1 || sp.Trim() == "")
                {
                    Tem_strLine = sr.ReadLine();
                    continue;
                }

                sp = sp.Substring(sp.IndexOf(Convert.ToChar("["))   1, 1);
                Tem_Slyrec = Tem_Str.Substring(Tem_Str.LastIndexOf(Convert.ToChar("]"))   1, Tem_Str.Length - (Tem_Str.LastIndexOf(Convert.ToChar("]"))   1));
                if (EstimateFig(sp))
                {
                    while (Tem_bool)
                    {
                        Tem_p = Tem_Str.IndexOf(Convert.ToChar("["));
                        Tem_q = Tem_Str.IndexOf(Convert.ToChar("]"));
                        Tem_Time = Tem_Str.Substring(Tem_p   1, Tem_q - Tem_p - 1);
                        ArrLyric.Add(Tem_Time   "|"   Tem_Slyrec);
                        if (Tem_q != Tem_Str.LastIndexOf(Convert.ToChar("]")))
                            Tem_Str = Tem_Str.Substring(Tem_q   1, Tem_Str.Length - Tem_q - 1);
                        else
                            Tem_bool = false;
                    }
                }
                Tem_strLine = sr.ReadLine();
            }
            sr.Dispose();
            fs.Dispose();

            int Tem_DatetimeUp;//记录前一个时间
            int Tem_DstetimeDown;//记录后一个时间
            string Tem_taxisTime = "";//记当截取后的时间字符串
            string Tem_Transitorily = "";//排序时临时存储的字符串
            string[] ArrayStr = new string[ArrLyric.Count];
            for (int i = 0; i < ArrayStr.Length; i  )
            {
                Tem_Str = ArrLyric[i].ToString();
                Tem_taxisTime = Tem_Str.Substring(0, Tem_Str.LastIndexOf(Convert.ToChar("|")));
                Tem_taxisTime = BuildMillisecond(Tem_taxisTime);
                ArrayStr[i] = Tem_taxisTime   "|"   Tem_Str.Substring(Tem_Str.LastIndexOf(Convert.ToChar("|"))   1, Tem_Str.Length - Tem_Str.LastIndexOf(Convert.ToChar("|")) - 1);
            }
            string iStr = "";
            string jStr = "";
            for (int i = 0; i < ArrayStr.Length - 2; i  )
            {
                for (int j = 0; j < ArrayStr.Length - 1 - i; j  )
                {
                    iStr = ArrayStr[j];
                    jStr = ArrayStr[j   1];
                    Tem_taxisTime = iStr.Substring(0, iStr.LastIndexOf(Convert.ToChar("|")));
                    Tem_DatetimeUp = Convert.ToInt32(Tem_taxisTime);
                    Tem_taxisTime = jStr.Substring(0, jStr.LastIndexOf(Convert.ToChar("|")));
                    Tem_DstetimeDown = Convert.ToInt32(Tem_taxisTime);
                    if (Tem_DstetimeDown < Tem_DatetimeUp)
                    {
                        Tem_Transitorily = ArrayStr[j];
                        ArrayStr[j] = ArrayStr[j   1];
                        ArrayStr[j   1] = Tem_Transitorily;
                    }
                }
            }
            return ArrayStr;
        }
        #endregion

        #region  在字符串中截取数字
        /// <summary>
        /// 在字符串中截取数字
        /// </summary>
        /// <param Istr="string">包含数字的字符串</param>
        public bool EstimateFig(string Istr)
        {
            string Tem_Sint = "";
            bool Tem_Bool = false;
            CharEnumerator Tem_CharEnum = Istr.GetEnumerator();
            while (Tem_CharEnum.MoveNext())
            {
                byte[] Tem_byte = new byte[1];
                Tem_byte = System.Text.Encoding.ASCII.GetBytes(Tem_CharEnum.Current.ToString());
                int Tem_ASCII_Code = (short)(Tem_byte[0]);
                if (Tem_ASCII_Code >= 48 && Tem_ASCII_Code <= 57)
                    Tem_Sint  = Tem_CharEnum.Current.ToString();
            }
            if (Tem_Sint != "")
                Tem_Bool = true;
            return Tem_Bool;
        }
        #endregion

        #region  计算时间的毫秒数
        /// <summary>
        /// 计算时间的毫秒数
        /// </summary>
        /// <param Istr="string">时间</param>
        public string BuildMillisecond(string Istr)
        {
            string Tem_Value = "";
            int Tem_Cent = 0;
            int Tem_Sec = 0;
            int Tem_Mill = 0;
            Tem_Cent = Convert.ToInt32(Istr.Substring(0, Istr.IndexOf(Convert.ToChar(":"))));
            Tem_Sec = Convert.ToInt32(Istr.Substring(Istr.IndexOf(Convert.ToChar(":"))   1, Istr.IndexOf(Convert.ToChar(".")) - Istr.IndexOf(Convert.ToChar(":")) - 1));
            Tem_Mill = Convert.ToInt32(Istr.Substring(Istr.IndexOf(Convert.ToChar("."))   1, Istr.Length - Istr.IndexOf(Convert.ToChar(".")) - 1));
            Tem_Cent = Tem_Cent * 60000   Tem_Sec * 1000   Tem_Mill;
            Tem_Value = Tem_Cent.ToString();
            return Tem_Value;
        }
        #endregion

        #region  计算时间的秒数
        /// <summary>
        /// 计算时间的毫秒数
        /// </summary>
        /// <param Istr="string">时间</param>
        public string BuildSec(string Istr)
        {
            string Tem_Value = "";
            if (Istr == "")
                return Tem_Value;
            int Tem_Cent = 0;
            int Tem_Sec = 0;
            Tem_Cent = Convert.ToInt32(Istr.Substring(0, Istr.IndexOf(Convert.ToChar(":"))));
            Tem_Sec = Convert.ToInt32(Istr.Substring(Istr.IndexOf(Convert.ToChar(":"))   1, Istr.Length - Istr.IndexOf(Convert.ToChar(":")) - 1));
            Tem_Cent = Tem_Cent * 60   Tem_Sec;
            Tem_Value = Tem_Cent.ToString();
            return Tem_Value;
        }
        #endregion

        #region  清空数组
        /// <summary>
        /// 清空数组
        /// </summary>
        /// <param Arr_List="ArrayList">数组名</param>
        public void ArrayList_Close( ArrayList Arr_List)
        {
            if (Arr_List.Count > 0)
            {
                for (int i = 0; i < Arr_List.Count; i  )
                    Arr_List.RemoveAt(0);
            }
        }
        #endregion

        #region  返回上一级目录
        /// <summary>
        /// 返回上一级目录
        /// </summary>
        /// <param dir="string">目录</param>
        /// <returns>返回String对象</returns>
        public string UpAndDown_Dir(string dir)
        {
            string Change_dir = "";
            if (dir.Length > 4)
                Change_dir = Directory.GetParent(dir).FullName;
            else
                Change_dir = dir;
            return Change_dir;
        }
        #endregion

        #region  获取图片路径
        /// <summary>
        /// 获取图片路径
        /// </summary>
        public void ImageDir()
        {
            string Tem_Imadir = "";
            Tem_Imadir = UpAndDown_Dir(System.AppDomain.CurrentDomain.BaseDirectory);
            Tem_Imadir = UpAndDown_Dir(Tem_Imadir);
            Tem_Imadir = UpAndDown_Dir(Tem_Imadir);
            ImgDir = Tem_Imadir;
        }
        #endregion

        #region  改变按钮的动态图片
        /// <summary>
        /// 改变按钮的动态图片
        /// </summary>
        /// <param PicBox="PictureBox">PictureBox控件</param>
        /// <param n="Int16">切换样式的标识</param>
        /// <param Bn="Boolean">判断切换的图片,True为新图片,False为原始图片</param>
        public void ButtonChange(PictureBox PicBox,Int16 n,Boolean Bn)
        {
            if (n > 0 && n <= 12)
                PicBox.Image = null;
            switch (n)
            {
                case 1://主窗体最小化按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.最小化按钮变色;
                        else
                            PicBox.Image = (Image)Properties.Resources.最小化按钮;
                        break;
                    }
                case 2://主窗体关闭按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.关闭按钮变色;
                        else
                            PicBox.Image = (Image)Properties.Resources.关闭按钮;
                        break;
                    }
                case 3://打开文件按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.打开文件列表变;
                        else
                            PicBox.Image = (Image)Properties.Resources.打开文件列表;
                        break;
                    }
                case 4://显示文件列表窗体按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.PL变;
                        else
                            PicBox.Image = (Image)Properties.Resources.PL;
                        break;
                    }
                case 5://显示歌词窗体按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.LRC变;
                        else
                            PicBox.Image = (Image)Properties.Resources.LRC;
                        break;
                    }
                case 6://显示视频窗体按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.WF变;
                        else
                            PicBox.Image = (Image)Properties.Resources.WF;
                        break;
                    }
                case 7://播放上一个文件按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.前进按钮变;
                        else
                            PicBox.Image = (Image)Properties.Resources.前进按钮;
                        break;
                    }
                case 8://文件播放按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.播放按钮变;
                        else
                            PicBox.Image = (Image)Properties.Resources.播放按钮;
                        break;
                    }
                case 9://文件停止按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.停止按钮变;
                        else
                            PicBox.Image = (Image)Properties.Resources.停止按钮;
                        break;
                    }
                case 10://播放下一个文件按钮
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.后退按钮变;
                        else
                            PicBox.Image = (Image)Properties.Resources.后退按钮;
                        break;
                    }
                case 11:
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.播放列表关闭按钮变;
                        else
                            PicBox.Image = (Image)Properties.Resources.播放列表的关闭按钮原;
                        break;
                    }
                case 12:
                    {
                        if (Bn)
                            PicBox.Image = (Image)Properties.Resources.暂停按钮变;
                        else
                            PicBox.Image = (Image)Properties.Resources.暂停按钮;
                        break;
                    }
            }
        }
        #endregion


        #region  创建m3u文件
        /// <summary>
        /// 创建m3u文件
        /// </summary>
        /// <param FileDir="string">目录</param>
        public void m3uCreate(string FileDir)
        {
            FileStream fs;
            Byte[] info;
            if (File.Exists(FileDir)) //如果文件存在,则退出操作
            {
                MessageBox.Show("文件已存在,请重新设置文件名。");
                return;
            }
            else    //如果文件不存在,则创建File.CreateText对象
            {
                fs = File.Create(FileDir);
            }
            info = new UTF8Encoding(true).GetBytes("#EXTM3U");
            fs.Write(info, 0, info.Length);
            fs.Close();
            fs.Dispose();
        }
        #endregion

        #region  写入m3u文件
        /// <summary>
        /// 写入m3u文件
        /// </summary>
        /// <param FileDir="string">目录</param>
        public void m3uWrite(string FName, string FTime, string FDir, string FileDir)
        {
            if (!File.Exists(FileDir))
            {
                MessageBox.Show("文件不存在。");
                return;
            }
            StreamWriter ASW = new StreamWriter(FileDir,true,Encoding.Default);
            ASW.WriteLine();
            ASW.Write("#EXTINF:"   FTime   ","   FName);
            ASW.WriteLine();
            ASW.Write(FDir, Encoding.Default);
            ASW.Flush();
            ASW.Close();
            ASW.Dispose();
        }
        #endregion

        #region  删除m3u文件
        /// <summary>
        /// 删除m3u文件
        /// </summary>
        /// <param FileDir="string">目录</param>
        public void m3uDelete(string FileDir)
        {
            if (!File.Exists(FileDir))
            {
                MessageBox.Show("文件不存在。");
                return;
            }
            File.Delete(FileDir);

        }
        #endregion

        public static ArrayList AList = new ArrayList();
        #region  读取m3u文件
        /// <summary>
        /// 读取m3u文件
        /// </summary>
        /// <param FileDir="string">目录</param>
        public void m3uRead(string FileDir)
        {
            if (!File.Exists(FileDir))
            {
                MessageBox.Show("文件不存在。");
                return;
            }
            AList.Clear();
            string S;
            StreamReader SR =new StreamReader(FileDir,Encoding.Default);
            S = SR.ReadLine();
            AList.Add(S);
            while (S != null)
            {
                S = SR.ReadLine();
                if (S == null)
                    break;
                AList.Add(S);
            }
            SR.Close();
            SR.Dispose();
        }
        #endregion

        #region  列表的相关操作
        /// <summary>
        /// 列表的相关操作
        /// </summary>
        /// <param LV="ListView">ListView控件</param>
        /// <param n="int">标识</param>
        public void List_ADDName(ListView LV,int n)
        {
            string tem_n="";
            switch (n)
            {
                case 1://新建列表
                    {

                        int tem_i = 0;
                        for (int i = 0; i < LV.Items.Count; i  )
                        {
                            tem_n = LV.Items[i].SubItems[0].Text;
                            if (tem_n.IndexOf("新建") > -1)
                            {
                                if (tem_n.Length == 3)
                                {
                                    if (tem_i <= Convert.ToInt16(tem_n.Substring(2, 1)))
                                        tem_i = Convert.ToInt16(tem_n.Substring(2, 1));
                                }
                            }
                        }
                        tem_i = tem_i   1;
                        Data_List(LV, "新建"   tem_i.ToString(), UpAndDown_Dir(System.AppDomain.CurrentDomain.BaseDirectory)   "\\新建"   tem_i.ToString()   ".m3u");
                        m3uCreate(UpAndDown_Dir(System.AppDomain.CurrentDomain.BaseDirectory)   "\\新建"   tem_i.ToString()   ".m3u");
                        break;
                    }
                case 2://添加列表
                    {
                        string tem_newName = "";
                        OpenFileDialog FileD = new OpenFileDialog();
                        if (FileD.ShowDialog() == DialogResult.OK)
                        {
                            tem_n = FileD.FileName;
                            tem_newName = Folder_Handle(tem_n, "", "", n);
                            if (tem_newName.IndexOf('\\') >= 0)
                                Data_List(LV, File_Name(tem_newName, false), tem_newName);
                        }
                        break;
                    }
                case 3://打开列表
                    {
                        string tem_newName = "";
                        OpenFileDialog FileD = new OpenFileDialog();
                        FileD.Filter = "M3U文件(*.M3U)|*.m3u";
                        if (FileD.ShowDialog() == DialogResult.OK)
                        {
                            tem_n = FileD.FileName;
                            tem_newName = Folder_Handle(tem_n, "", "", 2);
                            if (tem_newName.IndexOf('\\') >= 0)
                                Data_List(LV, File_Name(tem_newName, false), tem_newName);

                            int tem_n2 = 0;
                            if ((LV.Items.Count - 1) > FrmClass.Example_ListNameNark)
                            {
                                tem_n2 = LV.Items.Count - 1;
                                Format_ListN(((Frm_ListBox)FrmClass.F_List).listView_List);
                                Format_ListV(((Frm_ListBox)FrmClass.F_List).listView_List);

                                LV.Items[Example_ListNameNark].Selected = true;
                                LV.SelectedItems[0].BackColor = Color.DarkSeaGreen;
                                LV.Items[Example_ListNameNark].Selected = false;

                                Example_ListNameNark = tem_n2;
                                LV.Items[Example_ListNameNark].Selected = true;
                                LV.Items[Example_ListNameNark].Focused = true;

                                LV.SelectedItems[0].BackColor = Color.DarkGreen;

                                Example_ListNameDir = LV.Items[Example_ListNameNark].SubItems[1].Text;
                                m3uRead(LV.Items[FrmClass.Example_ListNameNark].SubItems[1].Text);
                                if (FrmClass.AList.Count > 1)
                                {
                                    ListAddFile(LV, ((Frm_ListBox)FrmClass.F_List).listView_List, AList);
                                }
                                Example_ListMark = -1;
                            }

                        }
                        FileD.Dispose();
                        break;
                    }
                case 4://另存为
                    {
                        //Example_ListFClick
                        FolderBrowserDialog FileD = new FolderBrowserDialog();
                        if (FileD.ShowDialog() == DialogResult.OK)
                        {
                            tem_n = FileD.SelectedPath;
                            Folder_Handle(tem_n, LV.Items[Example_ListNameNark].SubItems[1].Text, "", n);
                        }
                        FileD.Dispose();
                        break;
                    }
                case 5://删除
                    {
                        if (Example_ListFClick < 0)
                        {
                            MessageBox.Show("请选择要删除的列表文件。");
                            break;
                        }
                        if (LV.Items[Example_ListFClick].SubItems[0].Text == "默认")
                        {
                            //MessageBox.Show("播放器的默认文件列表不能删除。");
                            break;
                            return;
                        }
                        if (Folder_Handle(LV.Items[Example_ListFClick].SubItems[1].Text, "", "", n) != "")
                        {
                            LV.Items[Example_ListNameNark].Selected = false;
                            LV.Items[Example_ListNameNark].Focused = false;

                            Format_ListN(((Frm_ListBox)FrmClass.F_List).listView_List);
                            Format_ListV(((Frm_ListBox)FrmClass.F_List).listView_List);

                            if (Example_ListFClick <= Example_ListNameNark)
                            {
                                int LVCount = (((Frm_ListBox)FrmClass.F_List).listView_List.Items.Count - 1);
                                LV.Items[Example_ListFClick].Remove();
                                LVCount = LVCount - 1;
                                if (Example_ListFClick < Example_ListNameNark)
                                {
                                    Example_ListNameNark = Example_ListNameNark - 1;
                                }
                                else if (Example_ListFClick == Example_ListNameNark)
                                {

                                    if ((LV.Items.Count-1) <= Example_ListFClick)
                                        Example_ListNameNark = 0;
                                }
                                LV.Items[Example_ListNameNark].Selected = true;
                                LV.Items[Example_ListNameNark].Focused = true;

                                LV.SelectedItems[0].BackColor = Color.DarkGreen;

                                Example_ListNameDir = LV.Items[Example_ListNameNark].SubItems[1].Text;
                                m3uRead(LV.Items[FrmClass.Example_ListNameNark].SubItems[1].Text);
                                if (FrmClass.AList.Count > 1)
                                {
                                    ListAddFile(LV, ((Frm_ListBox)FrmClass.F_List).listView_List, AList);
                                }
                            }
                            else
                            {
                                if (Example_ListFClick > Example_ListNameNark)
                                {
                                    LV.Items[Example_ListFClick].Remove();
                                    LV.Items[Example_ListNameNark].Selected = true;
                                    LV.Items[Example_ListNameNark].Focused = true;
                                }
                            }
                            Example_ListFClick = Example_ListNameNark;
                            
                        }
                        break;
                    }
            }
        }
        #endregion

        #region  文件名
        /// <summary>
        /// 文件名
        /// </summary>
        /// <param dir="string">目录</param>
        /// <param n="bool">判断是否带扩展名</param>
        public string File_Name(string dir, bool n)
        {
            if (dir.IndexOf('\\') < 0)
                return "";
            string Tem_FName = dir;
            Tem_FName = Tem_FName.Substring(Tem_FName.LastIndexOf('\\')   1, Tem_FName.Length - Tem_FName.LastIndexOf('\\') - 1);
            if (!n)
                Tem_FName = Tem_FName.Substring(0, Tem_FName.LastIndexOf('.'));
            return Tem_FName;

        }
        #endregion

        #region  文件的操作
        /// <summary>
        /// 文件的操作
        /// </summary>
        /// <param dir="string">目的目录</param>
        /// <param Sdir="string">原目录</param>
        /// <param NewName="string">修改的文件名称</param>
        /// <param n="int">标识</param>
        /// <returns>返回string对象</returns>
        public string Folder_Handle(string dir, string Sdir, string NewName, int n)
        {

            string F_Name = "";//定义一个字符串变量,用于记录当前操作的是文件夹,还是文件
            string t = "";//定义一个整型变量
            if (dir.IndexOf('\\') < 0)
                return t;
            if (UpAndDown_Dir(System.AppDomain.CurrentDomain.BaseDirectory) == UpAndDown_Dir(dir) && n < 4)
            {
                MessageBox.Show("不能在同一个目录下进行操作。");
                return t;
            }

            switch (n)
            {
                case 2://添加列表文件
                    {
                        try
                        {
                            FileInfo FInfo = new FileInfo(dir);//根据文件的路径,实例化一个FileInfo类
                            string tem_AddFile = UpAndDown_Dir(System.AppDomain.CurrentDomain.BaseDirectory)   "\\"   File_Name(dir, true);
                            if (File.Exists(tem_AddFile))
                            {
                                string tem_add = File_Name(dir, false);
                                bool tem_have = true;
                                while (tem_have)
                                {
                                    tem_add = tem_add   "(1)";
                                    F_Name = UpAndDown_Dir(System.AppDomain.CurrentDomain.BaseDirectory)   "\\"   tem_add   ".m3u";
                                    if (!File.Exists(F_Name))
                                    {
                                        tem_have=false;
                                    }
                                }
                            }
                            else
                            {
                                F_Name = UpAndDown_Dir(System.AppDomain.CurrentDomain.BaseDirectory)   "\\"   File_Name(dir, true);
                            }
                            FInfo.CopyTo(F_Name, true);
                            t = F_Name;
                        }
                        catch (Exception ex)
                        {
                            t = "";//标识,如是t为空表示操作失败
                            MessageBox.Show("文件添加失败。");
                            break;
                        }
                        break;
                    }
                case 4:
                    {
                        try
                        {
                            FileInfo FInfo = new FileInfo(Sdir);//根据文件的路径,实例化一个FileInfo类
                            string tem_AddFile = dir   "\\"   File_Name(Sdir, true);
                            if (File.Exists(tem_AddFile))
                            {
                                string tem_add = File_Name(tem_AddFile, false);
                                bool tem_have = true;
                                while (tem_have)
                                {
                                    tem_add = tem_add   "(1)";
                                    F_Name = UpAndDown_Dir(tem_AddFile)   "\\"   tem_add   ".m3u";
                                    if (!File.Exists(F_Name))
                                    {
                                        tem_have = false;
                                    }
                                }
                            }
                            else
                            {
                                F_Name = dir   "\\"   File_Name(Sdir, true);
                            }
                            FInfo.CopyTo(F_Name, true);
                            t = F_Name;
                        }
                        catch (Exception ex)
                        {
                            t = "";//标识,如是t为空表示操作失败
                            MessageBox.Show("文件保存失败。");
                            break;
                        }
                        break;
                    }
                case 5:
                    {
                        try
                        {
                            FileInfo FInfo = new FileInfo(dir);//根据文件的路径,实例化一个FileInfo类
                            FInfo.Delete();
                            t = dir;
                            break;
                        }
                        catch (Exception ex)
                        {
                            t = "";//标识,如是t为空表示操作失败
                            MessageBox.Show("文件删除失败。");
                            break;
                        }
                        break;
                    }
                case 6:
                    {
                        try
                        {
                            FileInfo FInfo = new FileInfo(dir);//根据文件的路径,实例化一个FileInfo类
                            F_Name = UpAndDown_Dir(dir)   "//"   NewName   ".m3u";
                            FInfo.MoveTo(F_Name);
                            t = F_Name;
                            break;
                        }
                        catch (Exception ex)
                        {
                            t = "";//标识,如是t为空表示操作失败
                            MessageBox.Show("文件删除失败。");
                            break;
                        }
                        break;
                    }

            }
            return t;
        }
        #endregion








    }
}

实例下载地址

媒体播放器示例源码下载

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警