copy自网上!
Option Explicit
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
mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等,下面介绍
它的使用方法:
该函数有四个参数:
第一个参数:要发送的命令字符串。字符串结构是:[命令][设备别名][命令参数].
第二个参数:返回信息的缓冲区,为一指定了大小的字符串变量.
第三个参数:缓冲区的大小,就是字符变量的长度.
第四个参数:回调方式,一般设为零
返回值:函数执行成功返回零,否则返回错误代码
一、常用命令
1.打开(Open),格式:Open 设备名 [type 设备型式][alias 别名]
Dim mName as string
mName = "f:\\mpeg\\mpeg1.avi"
mciSendString "open mName type MPEGVideo Alias movie parent %u Style %u notify",0&, 0, 0
其中:
open 操作命令
mName 全路径文件名
type MPEGVideo 是指打开MPEG,AVI等类型,如果不加这一句,就是打开WAV,MP3等
Alias movie 定义了该操作的别名为movie,后续操作只要指明别名即可
parent %u 源
Style %u 样式
notify 通知
2.播放(Play),格式:Play 设备名 [from 起点][to 终点]
mciSendString "play movie", 0&, 0, 0
mciSendString "play movie fullscreen", 0&, 0, 0 '全屏播放
3.暂停(Pause):
mciSendString "pause movie", 0&, 0, 0
4.继续(Resume):
mciSendString "resume movie", 0&, 0, 0
5.停止(Stop):
mciSendString "stop movie", 0&, 0, 0
6.关闭(Colse):
mciSendString "close movie", 0&, 0, 0
7.前进到下一个位置:
mciSendString "step movie", 0&, 0, 0
8.后退到上一个位置:
mciSendString "step movie reverse", 0&, 0, 0
9.前进或后退 N 個位置(其中 N<0 即表示后退)
mciSendString "step movie by " & str(N), 0&, 0, 0
10.获取当前播放位置:
Dim ST As String*64
mciSendString "status movie position", st, len(st), 0
11. 获取媒体的总长度:
mciSendString "status movie length", st, len(st), 0
l=val(st) 'l就是所播放文件的长度
12.获取播放当前状态:
Dim ST As String*64
mciSendString "status movie mode", ST, Len(ST), 0
If Left(ST, 7) = "stopped" Then (处理代码) '播放完毕
13.循环播放:
mciSendString "play movie repeat", 0&, 0, 0
二、控制声音大小(1-1000):
Dim V As Long
mciSendString "status movie volume",&V, len(v), 0 'V是获取的音量大小值。
V = 50
mciSendString "setaudio movie volume to 数值", 0, 0, 0 'V是设置的音量值
三、设置播放位置.(需事先设定时间格式),格式:Seek 设备名 [to 位置 | to start | to end]
Dim P1 as Long, P2 as Long
P1 = 100: P2 = 3000
mciSendString "seek movie to ", P1, 0, 0 'P1是当前起始位置,单位:毫秒
mciSendString "seek movie to start", 0&, 0, 0 '定位到开头位置
mciSendString "play movie", 0&, 0, 0 '定位后再播放
或者:
mciSendString "play movie FROM P1 to P2",0&, 0, 0 'P1是起始位置,P2是停止位置。单位:毫秒
mciSendString "seek movie to end", 0&, 0, 0 '定位到最后位置
四、在指定控件上播放视频:
mciSendString "open AVI 文件名 parent hWnd style child", 0&, 0, 0
其中,hWnd 是控件的句柄
执行上述命令之后,影片会被放置在控件的左上角,且影片的大小不受控件大小的影响,如果想要改变
影片播放的位置及大小,可以在執行 play 指令前先执行 put 指令,格式如下:
mcisendString "put AVI 文件名 window at X Y [Width Height]", 0&, 0, 0
其中:X、Y为影片左上角坐标,Width、Height为影片的宽高度
五、如果播放视频还可控制亮度(1-2000)
Dim B As Long
mciSendString "status movie brightness", B, 0, 0 'B是获取的亮度值。
B = 50
mciSendString "setvideo movie brightness to " & B, &0, 0, 0 'B是设置的亮度值
六、录音设置:
录音前,用以下语句初始化
1.设为8位:
mciSendString "set wave bitpersample 8", "", 0, 0
2.设为11025Hz
mciSendString "set wave samplespersec 11025", "", 0, 0
3.设为立体声:
mciSendString "set wave channels 2", "", 0, 0
4.实现PCM格式(不一定正确):
MCISENDSTRING "set wave format tag pcm","", 0, 0
5.开始录音:
mciSendString "close movie",0&,0,0
mciSendString "open new type WAVEAudio alias movie",0&,0,0
mciSendString "record movie",0&,0,0
6.保存录音到c:\123.wav
mciSendString "stop movie",0&,0,0
mciSendString "save movie C:\\123.wav",0&,0,0
mciSendString "close movie",0&,0,0
七、开关光驱:
mciSendString "set cdaudio door open", "", 0, 0 '打开
mciSendString "set cdaudio door close", "", 0, 0 '关闭
八、其它
1.设置设备的各种状态(Set)
Set alias_name[audio all off][audio all on][time format ms]:
Set命令用来设置设备的各种状态.如:静音,有声音,时间格式为毫秒等.
2.取得设备的状态(Status)
Status alias_name[length][mode][position]:
Status命令用来取得设备的状态.如:该媒体文件的长度,该媒体文件所处状态,该媒体文件的当前位置等. 的长度,该媒体文件所处状态,该
媒体文件的当前位置等.
参考代码:
TCHAR fileName[]="D:\\俺的文档\\my music\\爷爷泡的茶.mp3";
TCHAR shortName[MAX_PATH];
GetShortPathName(fileName,shortName,sizeof(shortName)/sizeof(TCHAR));
TCHAR cmd[MAX_PATH+10];
wsprintf(cmd,"play %s",shortName);
mciSendString(cmd,"",NULL,NULL);
(调用mciSendString第一个参数传“play 文件全路径”就可以,“文件全路径”最好传绝对路径,不建议wanghepeng10那样值传递文件名。
另外如果文件全路径中含有空格的话要使用GetShortPathName转换成短路径。)
分享到:
相关推荐
下面将详细介绍 mciSendString 的使用方法。 首先,需要打开多媒体文件。在 Dialog 上面放一个 Picture 控件,MCISendString 就在这个 Picture 控件的平面上播放多媒体文件。设 Picture 控件的 ID 为 IDC_STATIC1:...
下面将详细介绍 mciSendString 的使用方法。 命令结构 mciSendString 函数有四个参数:命令字符串、返回信息缓冲区、缓冲区大小和回调方式。命令字符串的结构是:[命令][设备别名][命令参数]。 常用命令 1. 打开...
本文将详细介绍 `mciSendString` 的一些常见用法及其参数设置。 #### 二、基本语法 `mciSendString` 的基本语法如下: ```vb Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _ (ByVal ...
### mciSendString 的详细资料 #### 概述 `mciSendString` 是一个...以上是 `mciSendString` 函数的一些常见使用方法及其命令示例。通过这些命令,可以灵活地控制多媒体文件的播放行为,满足大多数多媒体应用的需求。
从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出有关...理解并熟练掌握其使用方法,对于开发多媒体应用程序有着重要的意义。以上知识点覆盖了该函数的基本使用场景及参数配置,为开发者提供了详尽的指导。
在本文中,我们将深入探讨如何使用C#编程语言结合API函数`mciSendString`来创建一个简单的MP3播放器。`mciSendString`是一个Windows Multimedia Control Interface (MCI)函数,它允许应用程序控制多媒体设备,如音频...
在本文中,我们将深入探讨mciSendString函数的原理、使用方法以及如何将其应用于音乐播放器的开发中,从而创建出功能丰富的5.0版本。 mciSendString是Windows Multimedia Control Interface(MCI)的一部分,它提供...
### Windows动态连接库winmm.dll中的多媒体命令:mciSendString的各种调用方法 在Windows系统中,多媒体处理是一项常见的需求。为了实现这一目标,Windows提供了多种API供开发者使用,其中就包括了winmm.dll中的...
总结来说,使用`mciSendString` API在PowerBuilder中播放视频是一种简洁而无需额外控件的方法。只需正确设置命令字符串并处理MCI的返回值,就可以实现基本的视频播放功能。然而,这并不适用于所有视频格式,因此在...
在Windows环境下,要实现音频播放,开发者可以使用多种方法,其中一种就是利用Windows API。Windows API 是一组预定义的函数,允许应用程序访问操作系统的服务。在这个项目中,`mcisendstring()`函数就是Windows API...
MCI 的使用方法概述 MCI(Media Control Interface)是一种多媒体控制接口,允许开发者控制和操作多媒体设备,例如 CD 播放器、数字音频磁带机、图象扫描仪等。下面是 MCI 的使用方法概述: 一、MCI 函数 MCI ...
当需要恢复播放时,可以使用`Sound.play()`方法,从上次暂停的位置继续播放,而不是从头开始。 音量控制则涉及到音频的淡入淡出效果以及实时调整音量大小。在Flash中,`SoundTransform`类提供了对音量控制的支持。...
分析这些代码可以帮助我们更好地理解类的用法,并可能提供关于如何与其他系统组件交互的额外信息。 总结来说,"MCI类简单实现"是一个将MCI功能包装成易于使用的类库,通过`mciSendCommand`和`mciSendString`函数...
例如,使用 mciSendString 函数来播放音频文件的代码如下: ``` MCIDEVICEID wDevice; mciSendString(wDevice, "play myfile.wav"); ``` 其中,wDevice 是设备标识号,"play myfile.wav" 是命令字符串,用于播放 ...
在C#中,为了封装这些功能,我们可以创建一个自定义的类,例如“AudioManager”,并在其中定义相应的方法,如`StartRecording`、`StopRecording`、`PlaySound`等。通过使用C#的委托和事件,我们可以实现回调机制,...
2. **打开媒体文件**: 使用`mciSendString`函数指定要播放的视频文件,如`mciSendString("open C:\\path\\to\\video.avi device video0", NULL, 0, NULL)`。 3. **设置播放参数**: 可以通过`mciSendString`设置播放...
一种常见的方法是使用Windows API中的多媒体函数,比如mciSendString,它可以控制多媒体设备,包括播放音频文件。首先,我们需要包含相关的Windows头文件,并且设置正确的函数调用。然后,使用mciSendString函数打开...
获取选定文件后,使用`Path`类的方法处理文件路径,确保其符合C#的字符串表示。 7. **异常处理**: 处理可能发生的异常是任何软件开发的重要部分。在尝试播放文件时,可能遇到文件不存在、格式不支持等问题,需要...
在Windows编程中,VC++...对于初学者,使用`mciSendString`是一个快速上手的方法,而对进阶开发者来说,DirectShow则提供了更多定制和控制的可能性。无论哪种方式,理解Windows多媒体编程的基本原理和API是至关重要的。
- **初始化MCI**: 在录音按钮的点击事件`OnRecord`中,首先使用`mciSendString`函数打开MCI设备,如`mciSendString("open new type waveaudio alias recsound", NULL, 0, NULL);`,这会创建一个名为"recsound"的新...