txt音乐播放器PC版C语言.zip 说明网址:https://blog.csdn.net/BHSZZY/article/details/106194422 可播放txt格式的音乐文件,扒谱助手,写好简谱就能一键播放; 包含C源码与exe文件,免费资源,欢迎大家下载使用,欢迎大佬优化改进并反馈,谢谢! 由于之前发的exe版是使用exe4j将jar包转换成的,运行时仍需要jdk环境(1.6/1.8,32/64位),感觉很不方便,因此准备开发一个windows可以直接使用的版本。 经过一段时间的开发(踩坑),终于使用C语言(初步)完成了这个txt音乐播放器。 本次仍会将下载链接发布在下方,与之前不同的是,本次会将C语言源码连同exe文件一起发布,欢迎有需要的朋友下载,欢迎大佬继续进行优化。 免费下载链接: https://download.csdn.net/download/BHSZZY/12435440 在开发过程中遇到的坑总结如下: 本人用C-Free开发时,为了播放音乐,用到了PlaySound方法;按照网上的说明添加了相关语句: #include <mmsystem.h> 结果在使用 PlaySound(url, NULL, SND_FILENAME | SND_ASYNC | SND_NOWAIT); 方法时,报错: [Error] C:txtmusictm.c:174: undefined reference to `PlaySoundA@12′ 百度发现,需要手动添加链接库,但是都是VC、VS中的添加方法,好不容易找到C-Free的添加方法了,如下(构建-构建选项-连接): 结果添加之后,还是报错: [Error] E:C-Free5mingwbinld.exe: cannot find -lE:C-Free5mingwliblibwinmm.a 继续百度,发现上方错误信息中多了一个“-l”,是C-Free编译时自己给添加了个参数,就导致找不到这个链接库了;(cannot find -lE: ,E盘之前的-l,大佬没写明白,我还找了半天) 解决方法呢?大佬说在Linker(CUI)里面的 -l(Libs) 去掉-l后就能通过编译(好像是C-Free设置菜单附近);但是我愣是没找到(现在也没找到) 那咋办?难道得手动输命令编译? 还好又找到一个大佬的文章,说配置参数就行了: 还是老地方,在下方参数写上”-lwinmm”就行了;不用加pragma comment (lib , “winmm.lib”),你加了C-Free也识别不了;也不用添加连接(没找到在哪里设置去掉-l) 这个参数的意思是,由于我需要的是winmm.lib的连接库,但是在C-Free中用的是libwinmm.a,其实基本是一个东西,只是C-Free中用lib+winmm+.a这个文件,发现这两个文件的中间命名相同就行了(都是winmm);然后编译时,增加参数“-lwinmm”,就可以把这个文件编译到程序中了(个人感觉相当于jar包),其中”-l”指lib,”winmm”指连接库。如果需要其它连接库也按照格式添加参数即可。 终于能使用PlaySound方法播放音乐了,然而又遇到一个问题,PlaySound只能一次播放一个音乐,如果再次调用该方法播放其它音乐,上一个音乐就会被中断。 联系到本人的txt音乐播放器,如果播放每个音符间隔时间长的音乐的话,还凑付能听;如果播放时间间隔短的、节奏快的音乐,听起来就磕磕绊绊的,很不连贯 。 通过各种百度,发现并没有参数能解决这个问题,异步参数SND_ASYNC也不行(本来就得加,不加还会完整播完一个音符再播下一个音符,更难受)。(还有人说加SND_NOWAIT,加了和没加一样,感觉就没有这个参数) 在此先吐槽一句,这也太菜了!本人写java版的就没遇到这个问题! 好吧,看看有没有其它方法。 有人说可以开多线程、多进程、多对象来让PlaySound同时播放多个音乐,但是研究了半天,感觉不太行,不符合要求(好吧,也许是没看懂);而且多对象,如果可以的话我也想啊,但是C语言怎么给PlaySound创建对象?还是多个?也许C++可以? 有人说可以先将多个wav混音成一个,然后用PlaySound方法播放;在此感觉大佬666,然而本人并不会代码混音,还得确定混音开始时间结束时间、插入空白间隔;根据txt简谱的不同,每次执行都要现场混音,总觉得耗时也是个问题,而且不方便; 还有人说可以用MciSendString()方法播放音乐,再次研究了半天,测试了几波,发现还是不行,听起来就像跳音播放一样,总会漏几个音没有播(总是有节奏快的音乐的,跳着播可还行) 继续百度,难道C语言就这两个播放音乐的方法吗? 嗯……还真没找见其余方法,这个问题目前还没有解决。 PS:在某些情况下,运行本软件播放节奏快的音乐时,还能凑付听;在某些情况下就基本不能听了,有些乱。代码和参数都没动,很奇怪。 还是之前用exe4j将jar包转成的txt音乐播放器.exe感觉好用一点,音乐播放也连贯;这个C语言开发的txt音乐播放器还有很多需要完善的地方,关键的是播放快节奏音乐时音符切换导致的停顿很明显,不连贯。还请大家帮忙提提建议与修改方法,在此提前谢过大家了! 资源免费,代码免费;原创代码,欢迎,但是后请勿收费,谢谢!
前言:
技术要点(踩过的坑):
1.C-Free使用PlaySound找不到方法与连接库的问题
pragma comment (lib , “winmm.lib”)2.PlaySound播放多个音乐的问题
3.总结
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算