[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
这是MPlayer for windows的
是修改过,而且增加了外壳程序来控制的
很多命令行参数不支持,还有-slave模式..

linux下可以通过直接将命令写入管道文件来操作..
可以去官方下载命令行版,不仅CMD操作便捷,而且更效率,交互性也更好。

[ 本帖最后由 caruko 于 2010-10-20 21:43 编辑 ]

TOP

wget强大的是下载工具..

TOP

只是"命名管道",其实BAT可以做到相似的功能..
用AT /every:date[,...] 或者 /next:date[,...] 来区别命名..然后AT | FINDSTR 来查找
这样就可以做到多个CMD交换数据甚至命令, 还支持网络远程..

如果是I/O管道,大概写第3方也不太容易

TOP

linux下的MP支持通过管道写入命令..
比如得到当前播放时间是 get_time_pos
windows这个,我这个似乎有问题..
没法测试

TOP

脚本语言都如此了..
可以简单而又高效的完成某些操作任务..
简单的几行语句,完成繁复的任务。
不必象C一样,想写个简单的东西,都要先找来一大堆的库..

在系统高层上,脚本语言很有优势,但是底层的操作就经常无能为力了。

TOP

我写了一个歌词显示的.,支持暂停/继续,停止,上/下一首,拖拽到任意时间。
并且歌词是一个新的CMD窗口,不妨碍操作窗口。
但是,因为我这里MP问题,无法得到播放时间..
因此测试用的是系统时间相减..你可以更改部分代码,增加获取播放时间的代码。

以下代码不完全测试...
也还有不少问题,比如:
1, 没有支持毫秒,现在是精确到秒,抓系统时间然后计算毫秒增加不少负担,而且我使用的是findstr, 就算加上估计最多精确到0.3-0.5秒吧..
2, STOP,pause ,没有空闲CPU的指令,使用ping可能延迟有点高,所以一直在循环,造成CPU不小负担。
3, 毕竟CMD的,鼠标点击窗口 或者 非前台状态可能也会延迟。。。

控制命令如下:
@表示插入CMD语句,可用于退出,如@exit
$表示插入控制语句,
at 00:00 /next:1 @exit  ;退出歌词秀
at 00:00 /next:1 @pause  ;暂停歌词秀,输入健后才能继续
at 00:00 /next:1 $stop  ;停止歌词秀
at 00:00 /next;1 $goto$02:03   ; 跟随播放进度,跳转到02:03秒
at 00:00 /next:1 $start$e:\aaa.lrc  ; 直接开始播放aaa.mp3的时候加入,则加载新的歌词。如果是在暂停状态,则忽略参数开始继续暂停时间运行。
at 00:00 /next:1 $next$e:\aaa.lrc   ;其实跟start差不多,用它是打算完善后用在播放列表功能上。
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. color 2b
  4. :main %1
  5. if "%1" == "" echo 歌词不存在! & goto :暂停
  6. for /f "tokens=1,2 delims=:[]" %%a in ('findstr "ti:" %1') do set _ti=%%b
  7. title=%_ti%
  8. for /f "tokens=1,2 delims=[]" %%a in ('findstr "[0-9][0-9]:[0-5][0-9]." %1') do set "#%%a=%%b"
  9. set 初始时间=%time%
  10. set /a 初始分=%初始时间:~3,2%
  11. set /a 初始秒=%初始时间:~6,2%
  12. :loop
  13. set 临时时间=%time%
  14. call :临时时间 %临时时间:~3,2% %临时时间:~6,2% %临时时间:~9,2%
  15. at |findstr "@" >nul && call :cmdd
  16. at |findstr "$" >nul && call :contrl
  17. for /f "tokens=1,2 delims==" %%a in ('set # ^|findstr "%ktime%"') do call :显示歌词 %%b
  18. goto :loop
  19. goto :eof
  20. :临时时间
  21. set varm=%1 & set vars=%2 & set varms=%3
  22. if %varm% LSS %初始分% (set /a varm=varm+60)  2>nul
  23. if %vars% LSS %初始秒% (set /a varm=varm-1 & set /a vars=vars+60)  2>nul
  24. set /a 临时分=varm-初始分  2>nul
  25. set /a 临时秒=vars-初始秒  2>nul
  26. IF %临时分% LEQ 9 set 临时分=0%临时分%
  27. IF %临时秒% LEQ 9 set 临时秒=0%临时秒%
  28. set ktime=%临时分%:%临时秒%
  29. goto :eof
  30. :显示歌词
  31. if NOT "%*" == "" cls
  32. echo.%*
  33. goto :eof
  34. :cmdd 插入命令行语句
  35. for /f "tokens=1* delims=@" %%a in ('at ^|findstr "[0-9]"') do at /del /y & %%b
  36. goto :eof
  37. :contrl 控制歌词,比如暂停,停止,下一首等。
  38. for /f "tokens=2,3 delims=$" %%a in ('at ^|findstr "[0-9]"') do (
  39.         at /del /y
  40.         echo %%b | findstr /i "pause" && goto :暂停
  41.         echo %%b | findstr /i "next" && call :main %%c
  42.         echo %%b | findstr /i "stop" && call :stop
  43.         echo %%b | findstr /i "goto" && call :gt %%c
  44. )
  45. goto :eof
  46. :暂停
  47. title=%_ti% -- 暂停
  48. for /f "tokens=2,3 delims=$" %%a in ('at ^|findstr "[0-9]"') do (
  49.         at /del /y
  50.         echo %%b | findstr /i "pause" && call :暂停
  51.         echo %%b | findstr /i "next" && call :main %%c
  52.         echo %%b | findstr /i "stop" && call :stop
  53.         echo %%b | findstr /i "goto" && call :gt %%c
  54.         echo %%b | findstr /i "start" && goto :loop
  55. )
  56. goto :暂停
  57. :stop
  58. title=%_ti% -- 停止
  59. for /f "tokens=2,3 delims=$" %%a in ('at ^|findstr "[0-9]"') do (
  60.         at /del /y
  61.         echo %%b | findstr /i "pause" && call :暂停
  62.         echo %%b | findstr /i "next" && call :main %%c
  63.         echo %%b | findstr /i "stop" && goto :stop
  64.         echo %%b | findstr /i "goto" && call :gt %%c
  65.         echo %%b | findstr /i "start" && call :main %%c
  66. )
  67. goto :stop
  68. :gt mm:ss 参数为歌曲播放时间
  69. set ktime=%*
  70. goto :eof
复制代码

[ 本帖最后由 caruko 于 2010-10-22 18:11 编辑 ]

TOP

返回列表