Board logo

标题: [原创]自己做的音乐播放器. [打印本页]

作者: tianzizhi     时间: 2006-12-13 02:17    标题: [原创]自己做的音乐播放器.

空闲时间自己根据自己的想法做了个dos音乐播放器,我只是做了个控制器,播放器为mplayer.exe,它可以实现下面功能,1,自动随机播放..2,随机+指定播放功能.3,改善mplayer不能随机播放的缺陷.4, 目录歌曲随便加,摆脱掉目录歌曲更改时,播放器列表要也要手到更改的烦恼,5,具有筛选和搜索目录功能,音乐目录里有其它文件也可以,不影响播放.6,支持音乐格式:mp3,wma,wmv,avi,mpeg,rm,rmvb,并自动判断目录内有无歌曲.7,六种播放模式随你选,在显示(退出)字样时输入exit,回车,可退出此模式.
我特意重视了它的查错机制,我把所有可能出错的地方都尽可能考虑了,请大家测试.有兴趣的朋友用一下.dos多功能音乐播放器

最后我想请教一下大家实现随机播放有哪些方法,用random是肯定的,具体的实现方法,请大家发表一下自己的想法.

[ Last edited by tianzizhi on 2006-12-14 at 10:10 AM ]
作者: gene771771     时间: 2006-12-13 03:04    标题: 呵呵

没有人支持吗,我来定一下,先下载了,谢谢tianzizhi
作者: electronixtar     时间: 2006-12-13 07:10
支持~~
作者: a9319751     时间: 2006-12-13 07:15
支持下
作者: redtek     时间: 2006-12-13 08:21
这回听歌方便了,顶~~!!!
作者: electronixtar     时间: 2006-12-13 09:25
给楼主提一个意见。请看看 mplayer.exe 的属性,

  Quote:
MPlayer is distributed under the terms of the GNU General Public License Version 2. Source code is available at http://www.mplayerhq.hu

mplayer是GPL协议发布的,所以楼主的代码也要开源才对呀?
作者: voiL     时间: 2006-12-13 09:26


  Quote:
Originally posted by tianzizhi at 2006-12-13 02:17:
空闲时间自己根据自己的想法做了个dos音乐播放器,我只是做了个控制器,播放器为mplayer.exe,它可以实现下面功能,1,自动随机播放..2,随机+指定播放功能. ...


请教一下楼主,这个可不可以用参数来获取MP3的位速的?

我现在正需要一个可以在CMD下获取MP3位速的程序.

如果可以的话,恳请楼主帮忙加上或者另外写一个给我好吗?

在网上找了很久了,也没找到相关的.

P处理也搁了好长一段时间了.

作者: voiL     时间: 2006-12-13 09:37
不知怎么的,我的瑞星报警了呢...
附件 1: 111.JPG (2006-12-13 09:37, 20.03 K, 下载附件所需积分 1点 ,下载次数: 2)



作者: tianzizhi     时间: 2006-12-13 09:45
代码内容很好弄,要让它成为可实用的工具,还要让它有它的查错机制,我花了主要时间来完善它的查错机制,有了漏洞想到了马上补上,修改了大约要有30次左右吧,而关于播放音乐方面关键之处在于如何让它随机播放,其具体实现代码思路,我想知道大家是怎么处理这个问题的,我不想在我的代码思路的干扰下让大家去想,我只想看到几个版本的可以随机播放的代码后,然后再贴出我拙劣的代码,请大家谅解,请各位积极挑战可以随机播放的具体代码.
作者: tianzizhi     时间: 2006-12-13 09:53


  Quote:
Originally posted by voiL at 2006-12-13 09:37:
不知怎么的,我的瑞星报警了呢...

你的瑞星挺厉害的么,但是大家要知道,杀毒软件具有检测软件内部代码的功能,可能软件的内部代码有哪些让它感觉不安全吧,里面有一句调用2.exe的代码,不知于这句代码有没有关系.
作者: utem999     时间: 2006-12-13 11:33
非常的好用
谢了
作者: kennyfan     时间: 2006-12-13 11:45
我先下来玩玩.好用再帮你顶个!
作者: zouzhxi     时间: 2006-12-14 05:48
cmd.exe    ------最少也有1个,,,多则3个以上....
find.exe    -----一个....
mplayer.exe    -----一个....
2.exe    ------最少也有1个,,,多则3个以上....
dos多功能音乐播放器.EXE    -----一个....
CPU 使用率90%以上,,,,
进程数.比平常多了7个以上......
我晕倒....
作者: vkill     时间: 2006-12-14 05:53
还是喜欢 wmplayer
作者: tianzizhi     时间: 2006-12-14 06:24


  Quote:
Originally posted by zouzhxi at 2006-12-14 05:48:
cmd.exe    ------最少也有1个,,,多则3个以上....
find.exe    -----一个....
mplayer.exe    -----一个....
2.exe    ------最少也有1个,,,多则3个以上....
dos多功能音乐播攠...

你打开一个然后关了,马上再打开当然会出现进程多的问题,你关闭程序后,停几秒钟,再打开就不会出现进程多的问题,因为中间有个检查过程,间隔10秒检查一次,用到choice.exe程序,所以会出现用cpu暂时高的问题,但是cpu高只有1秒钟的时间,1秒后恢复正常,不会影响到电脑运行.
关于随机播放的具体代码,仁兄能否想出一个方案呀??
期待........

[ Last edited by tianzizhi on 2006-12-14 at 07:32 AM ]
作者: vkill     时间: 2006-12-14 06:31
下载好慢
作者: tianzizhi     时间: 2006-12-14 07:25
我用的是本论坛的上传功能,慢的话我换个链接吧.用pc2n.
作者: xuxuand     时间: 2006-12-15 04:44    标题: ding

顶一个...
作者: CHINAWY0007     时间: 2006-12-21 08:24
顶个!
作者: lovehack2006     时间: 2006-12-23 17:38
为什么在我这里运行是,马上就消失了?
作者: tianzizhi     时间: 2006-12-23 23:56
你的什么系统?
作者: fanglor     时间: 2007-1-16 09:12
下了啊 在用

效果还可以

不过界面能不能再美化一下啊

哈,还有,要是在放的时候去拉动流动条

音乐就会反复,能改进一下吗

对了,这个是用批处理写的?
作者: tianzizhi     时间: 2007-1-16 09:44
多谢fanglor又把这个贴子从下面捞了上来啊, 呵呵...
至于界面可以再美化一下的,我有空再做做,你说的拉动流到条音乐反复,这个我做不到,做不到鼠标支持,不过这个想法能实现,那就是mplayer换个界面版本的,你如果要的话给我说一下我弄好给你.这个是用批处理写的然后编译成exe文件的.
作者: imhzn     时间: 2007-5-13 18:05    标题: 投诉,有病毒

投诉,有病毒,我把包一解压就报告有病毒
作者: bw070     时间: 2007-5-15 23:48
最看重自己编的
作者: online365     时间: 2007-5-16 01:20
CPU使用100不下来.. 汗了..
作者: kich     时间: 2007-5-17 12:45


  Quote:
Originally posted by redtek at 2006-12-13 08:21:
这回听歌方便了,顶~~!!!

看袄这句话,我忍不住想笑!!
作者: zglxw     时间: 2007-5-23 18:29
支持
作者: wj12390     时间: 2007-6-4 15:29    标题: hehe

支持!!
作者: jashonx     时间: 2007-6-4 17:38
You are a smart man.
I support you for ever.
作者: 6622186     时间: 2007-6-13 23:25
如何实现通过歌曲序号播放歌曲?
作者: xue0808     时间: 2007-6-19 23:34
支持
作者: philosophy     时间: 2007-6-20 01:06
没有地方下载呢?
打开LZ的链接只有广告:网上相片冲印,6寸每张055元!登录冲印网
作者: cl02     时间: 2007-6-27 23:50
支持~~~
哦,,,像这样的话我家有一台破电脑只可以用DOS系统的,,看来也可以播放了...
作者: wswsysl     时间: 2007-6-28 21:11
能用么
作者: wswsysl     时间: 2007-6-28 21:22
能不能把代码给发出来
作者: stoneyu     时间: 2007-6-30 11:17    标题: 好贴,收藏先

好贴,收藏先


顶一个
作者: knoppix7     时间: 2007-7-1 14:40
没有了。。。。。。。。
作者: liumingqing     时间: 2007-7-1 17:12
何時我也能寫出這樣的程序來呢?有些嚮往.支持一下!
作者: ssetore     时间: 2007-8-14 00:11
带病毒吧。。。。
作者: xyq3312     时间: 2007-8-20 03:42
即然都贴出来了,没见着代码,可惜呀!
作者: ccwan     时间: 2007-8-28 14:49
这几天看到加密的批处理就想解开,所以到处找。呵呵
楼主的代码如下
@echo off
title dos多功能音乐播放器  作者:tianzizhi(cn-dos)
:bof
cls
setlocal enabledelayedexpansion
attrib +h +s mplayer\choice.exe.exe >nul 2>nul
attrib +h +s mplayer\where.exe.exe >nul 2>nul
set /a a=0
for /f "delims=" %%i in ('dir mplayer\*.* /a/b/s') do set /a a=!a!+%%~zi
if not !a!==212693 echo mplayer文件夹内文件有损坏,请检查.... & pause & exit
if not exist dos多功能音乐播放器.EXE echo dos多功能音乐播放器.EXE不存在或已改名.. && pause &exit
for %%i in (dos多功能音乐播放器.EXE) do @ set w=%%~zi
if not !w!==130046 echo dos多功能音乐播放器.EXE软件有问题,不能播放... && pause & exit
if not exist mplayer\2.exe echo 2.exe文件已不存在或已改名.... & pause & exit
start /b /min mplayer\2.exe >nul 2>nul
color 5e
echo   *************************************************************************
echo   ======================欢迎使用dos多功能音乐播放器=======================
echo   =======================制作人:tianzizhi #cn-dos#========================
echo       1.本软件完全免费.2.自动随机播放. 3.随机+指定播放功能.
echo       4.改善mplayer不能随机播放的缺陷.5.换歌请按Pgup or ESC 四箭头调节进度
echo       6.目录歌曲随便加,摆脱掉目录歌曲更改时,播放器列表要也要手到更改的烦恼.
echo       7.具有筛选和搜索目录功能,音乐目录里有其它文件也可以,不影响播放.        
echo       8.支持音乐格式:mp3,wma,wmv,avi,mpeg,rm,rmvb,并自动判断目录内有无歌曲.
echo       9.六种播放模式随你选,在显示(退出)字样时输入exit,回车,可退出此模式.   
echo       10.有什么建议或问题,请联系:zhangjihai095@163.com或QQ:419503077
echo       11.请勿修改本软件文件名,若修改将不能正常播放.
echo   *************************************************************************
attrib.exe +h +s %temp%\*.bat >nul 2>nul
if not exist mplayer.exe echo 错误,找不到mplayer.exe,请把mplayer放到本软件同一目录里,然后按任意键继续. && pause
if not exist mplayer.exe exit
if exist 目录.txt ( for /f "delims=" %%i in (目录.txt) do set ge=%%i & goto zhu )
set /p ge=请输入歌曲所在目录或盘符(盘符搜索慢),如(d:\音乐或d:\):
echo.
echo 是否记住此目录,若记住下次运行时不必输入目录..
echo 记住后若想再换目录,请删除(目录.txt)或在(目录.txt)里直接改成想要换的目录..
set /p ji=y,n:
if %ji%==y echo %ge% >目录.txt
echo.
goto zhu
:zhu
echo 请稍等,正在搜索文件.......
echo.
mplayer\where.exe /r %ge%  *.mp3 *.wma *.wmv *.avi *.mp*g *.rm *.rmvb  >nul 2>nul || echo "错误,文件夹内没有可播放的音乐..." && pause && del 目录.txt /f/a/q 2>nul && exit
if exist %temp%\di.txt >nul 2>nul del %temp%\di.txt /a /f
if exist %temp%\dir  >nul 2>nul rd %temp%\dir /q /s
md %temp%\dir >nul 2>nul
mplayer\where.exe /r %ge% *.mp3 *.wma *.wmv *.avi *.mp*g *.rm *.rmvb>%temp%\di.txt 2>nul
set num=1
for /f "delims=" %%i in (%temp%\di.txt) do (
echo %%i>%temp%\dir\!num!.txt
set /a num=!num!+1
)
attrib +h +s %temp%\di.txt >nul 2>nul
attrib +h +s %temp%\dir >nul 2>nul
if exist 歌曲列表.txt del 歌曲列表.txt /a/f/q
if not exist 歌曲列表.txt set /a num=1 & for /f "delims=" %%i in ('mplayer\where.exe /r %ge% *.mp3 *.wma *.wmv *.avi *.mp*g *.rm *.rmvb 2^>nul') do echo !num! %%i>>歌曲列表.txt 2>nul & set /a num=!num!+1
set /a num=!num!-1
echo 歌曲列表已在目录中,请查看.
echo 请选择播放模式.........
echo.
:zheng
set /p a=随机播放请输入0,指定一首播放请输入1,指定一首循环播放请输入2,按顺序播放全部请输入3,按顺序播放若干首歌请输入4,从列表中选几首喜欢的听请输入5:
if %a%==0 goto go
if %a%==1 goto yi
if %a%==2 goto bo
if %a%==3 goto shun
if %a%==4 goto xu
if %a%==5 goto tiao
if not %a%==0  if not %a%==1  if not %a%==2  if not %a%==3 if not %a%==4 if not %a%==5 echo 错误,请选择正确代号....&echo. & goto zheng

:go
set /a b=!num!-1
set /a c=%random% %% %b%+1
for /f "delims=" %%j in (%temp%\dir\%c%.txt) do (
start /b/min/wait mplayer "%%j"
mplayer\choice.exe /c yn /m "go on ok?" /t 2 /d y
if errorlevel 5 goto yes
if errorlevel 2 cls & goto bof
:yes
echo   *************************************************************************
echo   =================== 欢迎使用dos随机+指定音乐播放器======================
echo   =======================制作人:tianzizhi #cn-dos#========================
echo   *************************************************************************
goto go)

:bo
cls
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
set /p bofang=请输入你要听歌的代码(或退出此模式):
if %bofang%==exit  cls & goto bof
set /p xun=请输入要循环的次数:
if %bofang% LSS 1  echo 错误,请输入正确代码... & set /p bofang=请输入你要听歌的代码: & set /p xun=请输入要循环的次数:
if %bofang% GTR !num! echo 错误,请输入正确代码...  & set /p bofang=请输入你要听歌的代码: & set /p xun=请输入要循环的次数:

if %bofang% LSS 1 goto bo
if %bofang% GTR !num! goto bo
for /f "delims=" %%i in (%temp%\dir\%bofang%.txt) do @(
set c=1 & goto fang
)
:fang
for /f "delims=" %%i in (%temp%\dir\%bofang%.txt) do @(
echo   *************************************************************************
echo   =====================欢迎使用dos随机+指定音乐播放器=====================
echo   =======================制作人:tianzizhi #cn-dos#========================
echo   *************************************************************************
start /min/b /wait mplayer "%%i"
set /a c=!c!+1
if !c! LEQ %xun% (goto fang) else (goto bo)
)
:yi
cls
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
set /p bofang=请输入你要听歌的代码(或退出此模式):
if %bofang%==exit cls & goto bof
if %bofang% LSS 1  echo 错误,请输入正确代码... & set /p bofang=请输入你要听歌的代码:
if %bofang% GTR !num! echo 错误,请输入正确代码... & set /p bofang=请输入你要听歌的代码:
if %bofang% LSS 1 goto yi
if %bofang% GTR !num! goto yi
for /f "delims=" %%i in (%temp%\dir\%bofang%.txt) do @(
echo   *************************************************************************
echo   =====================欢迎使用dos随机+指定音乐播放器=====================
echo   =======================制作人:tianzizhi #cn-dos#========================
echo   *************************************************************************
start /min/b /wait mplayer "%%i" & goto yi)
:shun
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
for /f "delims=" %%i in (%temp%\di.txt) do @(
echo   *************************************************************************
echo   =====================欢迎使用dos随机+指定音乐播放器=====================
echo   =======================制作人:tianzizhi #cn-dos#========================
echo   *************************************************************************
start /min/b /wait mplayer "%%i"
mplayer\choice.exe /c yn /m "go on ok?" /t 2 /d y
if not errorlevel 5 if errorlevel 2 cls & goto bof
)
echo 播放完毕,是否继续循环..
set /p xuan=y,n:
if %xuan%==y goto shun
if %xuan%==n exit
:xu
cls
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
set /p kai=请输入开始的代号(或退出此模式):
if %kai%==exit cls & goto bof
set /p jie=请输入结束的代号:
if %kai% LSS 1  echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %kai% GTR !num!  echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %jie% LSS 1  echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %jie%  GTR !num! echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %kai% GTR %jie% echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %kai% LSS 1 goto xu
if %kai% GTR !num! goto xu
if %jie% LSS 1 goto xu
if %jie%  GTR !num! goto xu
if %kai% GTR %jie% goto xu
goto hu
:hu
for /f "delims=" %%i in (%temp%\dir\%kai%.txt) do @(
echo   *************************************************************************
echo   =====================欢迎使用dos随机+指定音乐播放器=====================
echo   =======================制作人:tianzizhi #cn-dos#========================
echo   *************************************************************************
start /min/b /wait mplayer "%%i"
set /a kai=!kai!+1
if !kai! LEQ %jie% (goto hu) else (goto xu)
)

:tiao
del %temp%\tiao.txt /s /a /q /f >nul 2>nul
cls
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
set /p zong=请输入总共要播放歌曲的个数(或退出此模式):
if %zong%==exit cls & goto bof
if %zong% LSS 1 echo 错误,请输入正确代码... & ping -n 3 127.0.1 >nul 2>nul & goto tiao
if %zong% GTR !num! echo 错误,请输入正确代码... & ping -n 3 127.0.1 >nul 2>nul & goto tiao
for /l %%i in (1,1,%zong%) do @(
set /p %%i=请输入一首歌的代号,并按回车:
if !%%i! LSS 1  echo 错误,请输入正确代码... & ping -n 4 127.0.1 >nul 2>nul & goto tiao
if !%%i! GTR !num! echo 错误,请输入正确代码... & ping -n 4 127.0.1 >nul 2>nul & goto tiao
echo !%%i! >>%temp%\tiao.txt
)
attrib +h +s %temp%\tiao.txt >nul 2>nul
goto kl
:kl
for /f "delims=" %%k in (%temp%\tiao.txt) do (
@ set /a i=%%k
for /f "delims=" %%j in (%temp%\dir\!i!.txt) do @(
echo   *************************************************************************
echo   =====================欢迎使用dos随机+指定音乐播放器=====================
echo   =======================制作人:tianzizhi #cn-dos#========================
echo   *************************************************************************
start /min/b /wait mplayer "%%j"
)
)
echo 是否循环这几首歌......
set /p we=y,n:
if %we%==y goto kl
if %we%==n goto tiao

作者: Nickey     时间: 2007-8-29 09:14
有木马啊 Trojan.Smalldrp.c
谁还敢用
作者: 6622186     时间: 2007-11-3 22:44
楼主真硬
作者: lijuqiang000     时间: 2010-3-19 17:15    标题: 好东西

下下来试试。
作者: 740011611     时间: 2010-3-20 14:39
现在已经下载不了了!能给个正确的地址吗?
作者: mbss     时间: 2010-5-18 00:04
没有下载文件啊?