频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用MCI指令进行多媒体编程

来源:东日制作室 作者:Nicrosoft 出处:巧巧读书 2005-11-06 进入讨论组
上一页 1 2 3 
  下面,我们举一个完整的程序作为例子(还是以VB为例),我们可以用API写一个CD播放器来代替使用多媒体控件。这样做的好处很明显,当你把程序编译成为EXE文件后复制给朋友的时候,
你再也不必附加其他OCX文件(如果是Delphi的话,EXE文件体积也可以减小)。

在VB中新建一个工程,在Form1中添加6个按钮和一个Timer控件,属性如下:

名称:Command1,Caption:弹出
名称:Command2,Caption:播放
名称:Command3,Caption:暂停
名称:Command4,Caption:下一首
名称:Command5,Caption:上一首
名称:Command6,Caption:退出
名称:Timer1,Interval:1000


接着,我们就可以编写代码了,如下:

'函数声明
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As
String) As Long
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA"
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal
uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim Cur As Integer '保存当前正在播放的曲目号
Dim Total As Integer '保存CD曲目总数

'弹出CD-ROM
Private Sub Command1_Click()
i% = mciExecute("set cdaudio door open")
End Sub

'播放
Private Sub Command2_Click()
i% = mciExecute("play cdaudio")
End Sub

'暂停
Private Sub Command3_Click()
i% = mciExecute("pause cdaudio")
End Sub

'播放下一首
Private Sub Command4_Click()
Dim ReturnStr As String * 128
i% = mciExecute("set cdaudio time format tmsf") '设置from后的时间格式
If Cur < Total Then i% = mciExecute("play cdaudio from" + Str(Cur + 1))
End Sub

'播放上一首
Private Sub Command5_Click()
Dim ReturnStr As String * 128
i% = mciExecute("set cdaudio time format tmsf")
If Cur > 1 Then i% = mciExecute("play cdaudio from" + Str(Cur - 1))
End Sub

'中止CD的播放并退出
Private Sub Command6_Click()
i% = mciExecute("stop cdaudio")
i% = mciExecute("close cdaudio")
End
End Sub

'程序启动时打开CDAudio设备并得到曲目总数
Private Sub Form_Load()
Dim ReturnStr As String * 128
i% = mciSendString("open cdaudio", ReturnStr, 128, 0)
i% = mciSendString("status cdaudio number of tracks", ReturnStr, 128, 0)
Total = Val(ReturnStr)
End Sub

'退出时中止CD的播放
Private Sub Form_Unload(Cancel As Integer)
i% = mciExecute("stop cdaudio")
i% = mciExecute("close cdaudio")
End Sub

'每隔一秒监测当前播放的曲目号
Private Sub Timer1_Timer()
On Error Resume Next
Dim ReturnStr As String * 128
i% = mciSendString("status cdaudio current track", ReturnStr, 128, 0)
Cur = Val(ReturnStr)
End Sub


  好了,现在这个CD播放器已经可以工作了,如果你再为它扩充一些有趣的功能的话,就是一个完整的小软件了。
通告:http://www.qqread.com/vb/d920559010.html 更多文章 更多内容请看多媒体应用解决方案Java编程开发手册专题,或进入讨论组讨论。
上一页 1 2 3 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章