zoukankan      html  css  js  c++  java
  • 一起来打造个正版音乐下载器(一)

        好久没做C#的项目了....昨天下载了VS2010不过电脑跑起来很卡又卸载了....好了言归正传..

        今天突然想做一个在线音乐播放器...但是想想自己又没有音乐资源,本来决定用百度的..但是想想谷歌的都是有授权的.....但是谷歌却下载的时候却又会跳转到巨鲸网,想来想去干脆就直接用巨鲸网的数据吧!而且里面的音乐还是正版的,O(∩_∩)O~

         

        这是我早上刚写出来的,写的有点简陋但是基本上可以用来下载歌曲了.....未来再添加个播放器就能在线播放歌曲了。。。。

    演示文件:https://files.cnblogs.com/cracker/iMusic.rar(非源代码)

    ---------------------------------------------

    现在来说说做这个软件需要了解的东西吧....

    1、首先你要懂得获取网页指定地方的内容(称为网页采集)

    2、你还需要了解怎么C#怎么制作下载器

    3、当然就是分析你要的内容如何获取了...

    ------------

    掌握了上面3个条件,要做一个音乐下载器就不难了。。。

    第一点和第二点、你需要了解WebClient,第三点你只需要会看懂HTML就没问题了!

    先说第二点吧,其实下载文件只需要实例化一个WebClient然后myWebClient.DownloadFile(下载URL,下载到的路径);

    便可以实现了...具体代码参考

    1 WebClient myWebClient = new WebClient();
    2 myWebClient.DownloadFile("http://images.cnblogs.com/logo_small.gif", "c:\\logo_small.gif");

    当然上面这种方法是没有返回值的,就是没办法实现进度条的....要实现进度条需要使用DownloadFileAsync方法然后绑定DownloadProgressChanged事件既可。具体代码

    代码
    WebClient myWebClient = new WebClient();
    Uri uri
    = new Uri(remoteUri);
    //绑定下载事件,以便于显示当前进度
    myWebClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(OnDownloadProgressChanged);
    //绑定下载完成事件,以便于计算总进度
    myWebClient.DownloadFileCompleted += new AsyncCompletedEventHandler(OnDownloadFileCompleted);

    // 下载保存文件到程序运行目录下
    myWebClient.DownloadFileAsync(uri, Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "Temp", fileName));

    具体的 OnDownloadProgressChanged和OnDownloadFileCompleted事件代码如下

    代码
    private void OnDownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    {

    //this.SetProcessBar(e.ProgressPercentage, (int)((nDownloadedTotal + e.BytesReceived) * 100 / total));

    progressBar1.Value
    = e.ProgressPercentage;
    label1.Text
    = "已下载" + e.BytesReceived + "字节/总计" + e.TotalBytesToReceive + "字节";//一个label框,用来显示当前下载的数据
    }

    private void OnDownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
    {

    if (MessageBox.Show("下载完成,是否打开文件", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
    {
    // 打开文件
    Process myProcess = new Process();

    myProcess.StartInfo.FileName
    = Application.StartupPath + "\\temp\\" + fileName;
    myProcess.StartInfo.Verb
    = "Open";
    myProcess.StartInfo.CreateNoWindow
    = true;
    myProcess.Start();
    }
    progressBar1.Value
    = 0;
    }

    博客园刚才一直断断续续不能访问...先这样吧...下回再介绍其他2点....介绍完后就会发源代码了...

  • 相关阅读:
    关于QQ秀
    c#重点知识解答(五) 选择自 masterall 的 Blog
    c#.net常用函数和方法集 选择自 fineflyak 的 Blog
    JavaScript 中 substr 和 substring的区别
    C#重点知识详解(二) 选择自 masterall 的 Blog
    c#重点知识详解(六) 选择自 masterall 的 Blog
    转:一个男孩的自白
    win2003端口映射2003的路由与远程访问,做端口映射(转)
    渗透笔记(转载)
    win下配置的Apache+PHP+MySQL绿色版本(转)
  • 原文地址:https://www.cnblogs.com/cracker/p/imusic_1.html
Copyright © 2011-2022 走看看