Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2042697
  • 博文数量: 519
  • 博客积分: 10070
  • 博客等级: 上将
  • 技术积分: 3985
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-29 14:05
个人简介

只问耕耘

文章分类

全部博文(519)

文章存档

2016年(1)

2013年(5)

2011年(46)

2010年(220)

2009年(51)

2008年(39)

2007年(141)

2006年(16)

我的朋友

分类: WINDOWS

2010-03-04 16:57:56

07年写的一个小程序, 一个很简单的命令行下的MP3播放程序,循环播放单首MP3。
用MASM32写的,FSG压缩后1.55K。
发上源码,请大家批评指正~
//////////////////////////////////////////////////////
.386
.model flat, stdcall
option casemap :none
include windows.inc 
include user32.inc
include kernel32.inc
include masm32.inc
include winmm.inc
includelib user32.lib 
includelib kernel32.lib
includelib masm32.lib
includelib winmm.lib
.data 
szMp3     dd 64 dup(0), 0 
szSuccess dd 64 dup(0), 0
szCommand dd 64 dup(0), 0
szFormat  db 'play %s repeat', 0
szFormat2 db '>>> 正在播放:%s', 0dh, 0ah, 0
szFalse   db '>>> 播放错误, 程序退出!', 0dh, 0ah, 0
szAbout   db '============ MP3简易命令行播放器 ============', 0dh, 0ah,
             ' 示例: MP3Player D:\Music\NightWish\Nemo.mp3' , 0dh, 0ah,
             ' 说明: 单首MP3循环播放. < Ctrl+C > 退出播放.' , 0dh, 0ah,
             '======== Aliwy ========', 0dh, 0ah, 0dh, 0ah, 0
.CODE 
_main proc 
  LOCAL dwMsg: MSG
  invoke GetCL, 1, addr szMp3
  invoke wsprintf, addr szCommand, addr szFormat, addr szMp3
  invoke mciSendString, addr szCommand, 0, 0, 0
  .if eax == NULL
    invoke ClearScreen
    invoke StdOut, addr szAbout
    invoke wsprintf, addr szSuccess, addr szFormat2, addr szMp3
    invoke StdOut, addr szSuccess
    .while TRUE
      invoke GetMessage, addr dwMsg, NULL, 0, 0
    .break .if eax == 0
    invoke TranslateMessage, addr dwMsg
    invoke DispatchMessage, addr dwMsg
    .endw
  .else
  invoke ClearScreen
  invoke StdOut, addr szAbout
  invoke StdOut, addr szFalse
  .endif
  ret
_main endp

START:
  call _main 
  invoke ExitProcess, 0
end START 
//////////////////////////////////////////////////////
阅读(640) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~