⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 visual c# 网络编程技术与实践实例包括几个源码
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//这里添加对DirectShow接口的引用
using QuartzTypeLib;
using System.Data.SqlClient;

namespace Stream
{
    public partial class Form1 : Form
    {
        //这里对要使用的变量进行声明
        public OpenFileDialog openFileDialog;
        public IVideoWindow myVideoWindow;
        public IMediaEvent myMediaEvent;
        public IMediaEvent myMediaEventEx;
        public IMediaPosition myMediaPosition;
        public IMediaControl myMediaControl;
        public IBasicAudio myBasicAudio;
        //数据库连接字符串
        private string connStr = System.Configuration.ConfigurationSettings.AppSettings["connect"];

        //初始化媒体文件的播放状态
        public string state = "";
        //该变量用来保存媒体文件的路径
        public string path;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ////获得收藏夹列表
            //DataSet mediaInfo = getInfo();
            ////将数据源与dataset数据集绑定
            //dgMedia.DataSource = mediaInfo.Tables["musicInfo"];
            //停止播放按钮不可用
            stopBtn.Enabled = false;
            //定时器开始计时
            timer1.Start();
        }

        //此处为定时器定时触发事件
        private void timer1_Tick(object sender, EventArgs e)
        {
            //如果播放状态为播放
            if (state == "Play")
            {
                //更新状态栏
                UpdateStatusBar();
            }
            //若媒体文件没有播放则不更新状态栏
            else
            {
                return;
            }
        }

        //更新播放状态栏函数
        private void UpdateStatusBar()
        {
            //查看状态变量
            switch (state)
            {
                //如果状态变量为停止 状态栏显示停止状态信息
                case "Stop": mediaState.Text = "Stopped"; break;
                //如果状态变量为暂停 状态栏显示暂停状态信息
                case "Pause": mediaState.Text = "Paused "; break;
                //如果状态变量为播放 状态栏显示播放状态信息
                case "Play": mediaState.Text = "Play"; break;
                //如果状态为空 则不显示信息
                case "": mediaState.Text = "Stopped"; break;
            }
            //如果状态不为空 获得播放时间信息
            if (state != "")
            {
                //获得总的播放时间
                int sec = (int)myMediaPosition.Duration;
                //获得小时信息
                int hour = sec / 3600;
                //获得分钟信息
                int min = (sec - (hour * 3600)) / 60;
                //获得秒信息
                sec = sec - (hour * 3600 + min * 60);
                //将播放时间信息显示在状态栏中
                timeState.Text = String.Format("{0:D2}:{1:D2}:{2:D2}", hour, min, sec);
                //获得当前的播放时间
                sec = (int)myMediaPosition.CurrentPosition;
                //获得小时信息
                hour = sec / 3600;
                //获得分钟信息
                min = (sec - (hour * 3600)) / 60;
                //获得秒信息
                sec = sec - (hour * 3600 + min * 60);
                //把当前时间信息显示在状态栏中
                timeState1.Text = String.Format("{0:D2}:{1:D2}:{2:D2}", hour, min, sec);
            }
            else
            {
                //初始化播放时间
                timeState.Text = "00:00:00";
                //初始化当前时间
                timeState1.Text = "00:00:00";
            }
        }

        //窗口关闭时释放DirectShow资源
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            //释放DirectShow资源
            myVideoWindow = null;
            myMediaEvent = null;
            myMediaEventEx = null;
            myMediaPosition = null;
            myMediaControl = null;
            myBasicAudio = null;
        }

        //删除收藏夹数据
        private void delBtn_Click(object sender, EventArgs e)
        {
            //初始化变量
            int index_t;
            string media_t = "";
            try
            {
                //获得欲删除记录的索引
                index_t = dgMedia.SelectedRows[0].Index;
                //获得删除记录的字段
                media_t = dgMedia.Rows[index_t].Cells["MeidaInfo"].Value.ToString();
            }
            //如果没有获得相应数据
            catch (Exception exp)
            {
                //显示错误信息
                MessageBox.Show("Delete Error!");
                //返回
                return;
            }
            //删除记录
            delMeidaInfo(media_t);
            //提示消息删除成功
            MessageBox.Show("删除成功!");
            //更新收藏夹数据
            DataSet mediaInfo = getInfo();
            dgMedia.DataSource = mediaInfo.Tables["musicInfo"];
        }

        //增加收藏夹信息
        public void addMediaInfo(string name, string path)
        {
            //连接数据库
            SqlConnection conn = new SqlConnection(connStr);
            SqlCommand SqlCmd = conn.CreateCommand();
            //使用pd_addInfo存储过程
            SqlCmd.CommandType = CommandType.StoredProcedure;
            SqlCmd.CommandText = "pd_addInfo";
            //传入参数
            SqlParameter parInput1 = SqlCmd.Parameters.Add("@Name", SqlDbType.Char);
            parInput1.Direction = ParameterDirection.Input;
            parInput1.Value = name;
            SqlParameter parInput2 = SqlCmd.Parameters.Add("@Path", SqlDbType.VarChar);
            parInput2.Direction = ParameterDirection.Input;
            parInput2.Value = path;
            //打开数据库连接
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            try
            {
                //执行插入媒体信息命令
                SqlCmd.ExecuteNonQuery();
            }
            finally
            {
                //关闭数据库
                if (conn.State == ConnectionState.Open)
                    conn.Close();
            }
        }

        //删除数据库数据
        public void delMeidaInfo(string name)
        {
            //连接数据库
            SqlConnection conn = new SqlConnection(connStr);
            SqlCommand SqlCmd = conn.CreateCommand();

            //使用pd_delInfo存储过程
            SqlCmd.CommandType = CommandType.StoredProcedure;
            SqlCmd.CommandText = "pd_delInfo";
            //传入参数
            SqlParameter parInput1 = SqlCmd.Parameters.Add("@Name", SqlDbType.Char);
            parInput1.Direction = ParameterDirection.Input;
            parInput1.Value = name;

            //打开数据库连接
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            //执行插入新贴命令
            SqlCmd.ExecuteNonQuery();
            //关闭数据库
            if (conn.State == ConnectionState.Open)
                conn.Close();
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -