`
lzk562209141
  • 浏览: 38822 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

关于mciSendString()使用用法

阅读更多
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用法

    下面将详细介绍 mciSendString 的使用方法。 首先,需要打开多媒体文件。在 Dialog 上面放一个 Picture 控件,MCISendString 就在这个 Picture 控件的平面上播放多媒体文件。设 Picture 控件的 ID 为 IDC_STATIC1:...

    mciSendString的部分用法

    下面将详细介绍 mciSendString 的使用方法。 命令结构 mciSendString 函数有四个参数:命令字符串、返回信息缓冲区、缓冲区大小和回调方式。命令字符串的结构是:[命令][设备别名][命令参数]。 常用命令 1. 打开...

    mciSendString的常用命令

    本文将详细介绍 `mciSendString` 的一些常见用法及其参数设置。 #### 二、基本语法 `mciSendString` 的基本语法如下: ```vb Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _ (ByVal ...

    mciSendString的详细资料

    ### mciSendString 的详细资料 #### 概述 `mciSendString` 是一个...以上是 `mciSendString` 函数的一些常见使用方法及其命令示例。通过这些命令,可以灵活地控制多媒体文件的播放行为,满足大多数多媒体应用的需求。

    mcisendstring 音乐播放器源代码

    从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出有关...理解并熟练掌握其使用方法,对于开发多媒体应用程序有着重要的意义。以上知识点覆盖了该函数的基本使用场景及参数配置,为开发者提供了详尽的指导。

    C# 利用API函数mciSendString方法制作的Mp3播放器

    在本文中,我们将深入探讨如何使用C#编程语言结合API函数`mciSendString`来创建一个简单的MP3播放器。`mciSendString`是一个Windows Multimedia Control Interface (MCI)函数,它允许应用程序控制多媒体设备,如音频...

    mciSendString音乐播放器开发5.0版本

    在本文中,我们将深入探讨mciSendString函数的原理、使用方法以及如何将其应用于音乐播放器的开发中,从而创建出功能丰富的5.0版本。 mciSendString是Windows Multimedia Control Interface(MCI)的一部分,它提供...

    Windows动态连接库 winmm.dll 里 多媒体命令:mciSendString 的各种调用方法

    ### Windows动态连接库winmm.dll中的多媒体命令:mciSendString的各种调用方法 在Windows系统中,多媒体处理是一项常见的需求。为了实现这一目标,Windows提供了多种API供开发者使用,其中就包括了winmm.dll中的...

    pb播放视频(不使用任何控件)

    总结来说,使用`mciSendString` API在PowerBuilder中播放视频是一种简洁而无需额外控件的方法。只需正确设置命令字符串并处理MCI的返回值,就可以实现基本的视频播放功能。然而,这并不适用于所有视频格式,因此在...

    c语言播放器

    在Windows环境下,要实现音频播放,开发者可以使用多种方法,其中一种就是利用Windows API。Windows API 是一组预定义的函数,允许应用程序访问操作系统的服务。在这个项目中,`mcisendstring()`函数就是Windows API...

    Mci的使用方法概述.pdf

    MCI 的使用方法概述 MCI(Media Control Interface)是一种多媒体控制接口,允许开发者控制和操作多媒体设备,例如 CD 播放器、数字音频磁带机、图象扫描仪等。下面是 MCI 的使用方法概述: 一、MCI 函数 MCI ...

    循环音乐的暂停与音量控制

    当需要恢复播放时,可以使用`Sound.play()`方法,从上次暂停的位置继续播放,而不是从头开始。 音量控制则涉及到音频的淡入淡出效果以及实时调整音量大小。在Flash中,`SoundTransform`类提供了对音量控制的支持。...

    MCI类简单实现

    分析这些代码可以帮助我们更好地理解类的用法,并可能提供关于如何与其他系统组件交互的额外信息。 总结来说,"MCI类简单实现"是一个将MCI功能包装成易于使用的类库,通过`mciSendCommand`和`mciSendString`函数...

    micsendstring函数的应用

    例如,使用 mciSendString 函数来播放音频文件的代码如下: ``` MCIDEVICEID wDevice; mciSendString(wDevice, "play myfile.wav"); ``` 其中,wDevice 是设备标识号,"play myfile.wav" 是命令字符串,用于播放 ...

    基于C#用winmm.dll和电脑声卡录音

    在C#中,为了封装这些功能,我们可以创建一个自定义的类,例如“AudioManager”,并在其中定义相应的方法,如`StartRecording`、`StopRecording`、`PlaySound`等。通过使用C#的委托和事件,我们可以实现回调机制,...

    MCI.rar_MCI CAPTU_mci

    2. **打开媒体文件**: 使用`mciSendString`函数指定要播放的视频文件,如`mciSendString("open C:\\path\\to\\video.avi device video0", NULL, 0, NULL)`。 3. **设置播放参数**: 可以通过`mciSendString`设置播放...

    使用控制台播放MP3音乐

    一种常见的方法是使用Windows API中的多媒体函数,比如mciSendString,它可以控制多媒体设备,包括播放音频文件。首先,我们需要包含相关的Windows头文件,并且设置正确的函数调用。然后,使用mciSendString函数打开...

    C#编写的播放音乐和视频完整代码

    获取选定文件后,使用`Path`类的方法处理文件路径,确保其符合C#的字符串表示。 7. **异常处理**: 处理可能发生的异常是任何软件开发的重要部分。在尝试播放文件时,可能遇到文件不存在、格式不支持等问题,需要...

    VC播放WAV声音文件

    在Windows编程中,VC++...对于初学者,使用`mciSendString`是一个快速上手的方法,而对进阶开发者来说,DirectShow则提供了更多定制和控制的可能性。无论哪种方式,理解Windows多媒体编程的基本原理和API是至关重要的。

    vc实现声音的录制和播放

    - **初始化MCI**: 在录音按钮的点击事件`OnRecord`中,首先使用`mciSendString`函数打开MCI设备,如`mciSendString("open new type waveaudio alias recsound", NULL, 0, NULL);`,这会创建一个名为"recsound"的新...

Global site tag (gtag.js) - Google Analytics