音乐播放器的制作

namespace ShockwaveFlashPlayer
{
    public partial class SWFPlayer : Form
    {
        public SWFPlayer()
        {
            InitializeComponent();

            axShockwaveFlash1.Size = new Size(this.Width, this.Height - 130);
            axShockwaveFlash1.Movie = "";

            lblReadyState.Location = new Point(0, this.Height - 125);
            lblScale.Location = new Point(this.Width - lblScale.Width - 10, this.Height - 125);
            trackBar1.Location = new Point(0, this.Height - 100);
        }

        private void SWFPlayer_Load(object sender, EventArgs e)
        {
            if (axShockwaveFlash1.ReadyState == 4)
            {
                lblReadyState.Text = "完成";
                lblScale.Text = "0/" + axShockwaveFlash1.TotalFrames.ToString();
                btnPlay.Enabled = true;
                trackBar1.Enabled = true;
            }
        }

        #region ShockwaveFlash 控件加载文件信息
        private void axShockwaveFlash1_OnReadyStateChange(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_OnReadyStateChangeEvent e)
        {
            switch (axShockwaveFlash1.ReadyState)
            {
                case 0:
                    lblReadyState.Text = "正在载入......";
                    break;
                case 1:
                    lblReadyState.Text = "未初始化";
                    break;
                case 2:
                    lblReadyState.Text = "已载入";
                    break;
                case 3:
                    lblReadyState.Text = "正在交互......";
                    break;
                case 4:
                    lblReadyState.Text = "完成";
                    lblScale.Text = axShockwaveFlash1.FrameNum + "/" + axShockwaveFlash1.TotalFrames.ToString();
                    trackBar1.Maximum = axShockwaveFlash1.TotalFrames;
                    btnPlay.Enabled = true;
                    btnBack.Enabled = true;
                    btnForward.Enabled = true;
                    trackBar1.Enabled = true;
                    break;
            }
        }

        private void axShockwaveFlash1_OnProgress(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_OnProgressEvent e)
        {
            lblReadyState.Text = "已下载 " + axShockwaveFlash1.PercentLoaded() + "%......";
        }
        #endregion

        #region 功能键(播放、后退、前进)
        //播放
        private void btnPlay_Click(object sender, EventArgs e)
        {
            if (axShockwaveFlash1.Playing)
            {
                axShockwaveFlash1.Stop();
                btnPlay.Text = "►";
                lblReadyState.Text = "暂停";
                timer1.Stop();
            }
            else
            {
                axShockwaveFlash1.Play();
                btnPlay.Text = "■";
                lblReadyState.Text = "播放";
                timer1.Start();
            }
        }
        //后退
        private void btnBack_Click(object sender, EventArgs e)
        {
            //axShockwaveFlash1.Back(); //此方法只能后退一帧
            axShockwaveFlash1.GotoFrame(axShockwaveFlash1.FrameNum - 20);
            btnPlay_Click(null, null); //播放
        }
        //前进
        private void btnForward_Click(object sender, EventArgs e)
        {
            //axShockwaveFlash1.Forward(); //前进一帧
            axShockwaveFlash1.GotoFrame(axShockwaveFlash1.FrameNum + 20);
            btnPlay_Click(null, null); //播放
        }
        #endregion

        #region 暂无内容
        private void axShockwaveFlash1_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
        {
            //XmlDocument doc = new XmlDocument();
            //doc.LoadXml(e.request);

            //XmlNodeList list = doc.GetElementsByTagName("arguments");
            //int width = Convert.ToInt32(list[0].FirstChild.InnerText);
            //int height = Convert.ToInt32(list[0].ChildNodes[1].InnerText);
            //if (width > axShockwaveFlash1.Width)
            //{
            //    this.Width += width - axShockwaveFlash1.Width;
            //}
            //if (height > axShockwaveFlash1.Height)
            //{
            //    this.Height += height - axShockwaveFlash1.Height;
            //}
        }

        private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
        {

        }
        #endregion

        //打开本地文件
        private void tsmiOpenFile_Click(object sender, EventArgs e)
        {
            DialogResult dr = openFile.ShowDialog();
            if (dr == DialogResult.OK)
            {
                axShockwaveFlash1.Movie = openFile.FileName;
                //axShockwaveFlash1.CallFunction("<invoke name=\"loadAndPlayVideo\" returntype=\"xml\"><arguments><string>" + openFile.FileName + "</string></arguments></invoke>");
            }
        }

        #region 文件拖放
        private void FlashControl_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.All;
            }
        }

        private void FlashControl_DragDrop(object sender, DragEventArgs e)
        {
            string swf = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();

            if (Path.GetExtension(swf).ToLower() == ".swf")
            {
                axShockwaveFlash1.Movie = swf;
            }
            else
            {
                MessageBox.Show("文件必须是 swf 格式!");
            }
        }
        #endregion

        //计数器
        private void timer1_Tick(object sender, EventArgs e)
        {
            lblScale.Text = axShockwaveFlash1.FrameNum + "/" + axShockwaveFlash1.TotalFrames.ToString();
            trackBar1.Value = axShockwaveFlash1.FrameNum;
        }

        //拖动 滑动条 滑块
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            axShockwaveFlash1.GotoFrame(trackBar1.Value);
            lblScale.Text = axShockwaveFlash1.FrameNum + "/" + axShockwaveFlash1.TotalFrames.ToString();
            btnPlay_Click(null, null); //播放
        }

    }
}
点击打开链接
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值