| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2539 人关注过本帖, 1 人收藏
标题:自己搞了个音乐播放器,但是写到一半,卡住了,,就剩下歌词同步与随机播放 ...
只看楼主 加入收藏
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
版主大哥,为什么我的歌词出不来,出来的是:一系列的歌名跟歌手名字???????
2013-04-15 15:44
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
歌词是显示在主界面的下方的,弹出来的窗体是表示在网上找到了相同歌名的歌词,让你双击选择一个要下载的歌词
2013-04-15 15:53
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
双击了,没反应哎,。
2013-04-15 16:43
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
那里有个小BUG,就是保存歌词路径使用了相对路径,并且没有写自动创建路径的代码,你用添加目录的方式加的歌,相对路径在你的Debug目录,如果你后来再使用过添加一首歌,那相对路径就改变成了你的歌所在的路径
如果你的歌所在的目录中,没有Lrc文件夹,这里歌词就写不进去,由于用了try catch,所以没有把错报出来
但是程序认为你歌词已经下载了,所以会去加载,但又找不到,又重新下载,所以那个框其实是双击关了又出来,当然你点叉关窗口,是不会再出来的

这里你最好把程序里面所有的路径都加上Application.StartupPath
就像之前是sw = new StreamWriter(@".\Lrc\" + fileName + ".Lrc", false, Encoding.UTF8);
改成sw = new StreamWriter(Application.StartupPath + @".\Lrc\" + fileName + ".Lrc", false, Encoding.UTF8);

程序里每个类里面都有这样的地方,总共有6处
或是你直接全部改成绝对路径也可以
2013-04-15 16:57
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
Form1里面
lrc.GetLrc(string.Format(Application.StartupPath + ".\\Lrc\\{0}.Lrc", lrc.GetFileName));    //1

ClsLrc里面
if (!Directory.Exists(Application.StartupPath + @".\Lrc"))     //2
{
    Directory.CreateDirectory(Application.StartupPath + @".\Lrc");   //3
}

if (File.Exists(Application.StartupPath + @".\Lrc\" + fileName + ".Lrc"))      //4

sw = new StreamWriter(Application.StartupPath + @".\Lrc\" + fileName + ".Lrc", false, Encoding.UTF8);    //5

Form2里面
sw = new StreamWriter(Application.StartupPath + @".\Lrc\" + fileName + ".Lrc", false, Encoding.UTF8);    //6
2013-04-15 17:00
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
额,对了,那个Form1.cs【设计】怎么把它重新弄出来。。这个我没碰到过。。。
2013-04-15 17:05
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
在解决方案中双击Form1.cs
2013-04-15 17:23
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
歌词还是没出来,不过,这个我好多不懂,只能先靠你帮我了,还有几点瑕疵,我想了好久都不知道怎么改:1:当进去先按设置目录,然后按确定以后,出现了所有的歌曲,可是这时,如果我随便选一个删除,就会出错,说索引超出范围。
2:当一开始进去就添加一首歌,然后选中,点删除,这时还会弹出个框架说:请选择删除的歌曲,,
您看还是我上传的这个文件吧,我经过了一点自己的修改,但是还没完美,,
Mp3.zip (918.73 KB)
2013-04-15 17:28
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
之前还漏掉了一处
ClsLrc.cs里面
if (File.Exists(Application.StartupPath + @".\Lrc\" + fileName + ".Lrc"))
{
    result = "正在解析歌词...";
}

另外你在改这里的时候
 public void GetLrc(string FileName)
{
    if (!File.Exists(Application.StartupPath + @".\Lrc\" + fileName + ".Lrc"))      
    //if (!File.Exists(FileName))
        return;

你改了以后,感叹号写掉了,导致歌词显示不出来
2013-04-15 18:16
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
其实你写掉感叹号这里可以不用改,因为那个FileName是参数,是在Form1里面传进来的,前面改了,这里是没有问题的
这里你用小写的fileName,就需要加上路径,大写的那个FileName里面就是前面传进来全路径

你漏掉的是正在解析歌词那个地方

[ 本帖最后由 yhlvht 于 2013-4-15 18:21 编辑 ]
2013-04-15 18:18
快速回复:自己搞了个音乐播放器,但是写到一半,卡住了,,就剩下歌词同步与随机 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017831 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved