Windows多媒体API -低阶(三)

1.1         WINMM.DLL

winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄。

函数汇总:

auxGetDevCaps 查询指定的辅助输出设备以确定其性能

auxGetNumDevs 检取系统中存在的辅助输出设备的数量

auxGetVolume 返回指定的辅助输出设备的当前卷设备

auxOutMessage 向指定的辅助输出设备发送一条消息

auxSetVolume 在指定的辅助输出设备中设置卷

CloseDirver 关闭指定的可安装驱动器

DefDriverProc 为任何不由可安装驱动器处理的消息提供的缺省处理

Drivercallback 调用一个回调函数,发送一条消息给窗口或将一个线程的阻塞解除

DrvGetModuleHandle 返回包含指定可安装驱动器模块的实例句柄

DrvsendMessage 把指定的消息发送给可安装驱动器

GetDriverModuleHandle 返回包含指定可安装驱动器模块的实例句柄

joyGetDevCaps 查询指定的游戏杆设备以确定其性能

joyGetNumDevs 返回系统支持的游戏杆设备的数量

joyGetPos 查询指定的游戏杆设备的位置和活动性

joyGetPosEx 查询一个游戏杆设备的位置和它的按扭状态

joyGetThreshold 查询指定的游戏杆设备的当前移动阈值

joyReleaseCapture 释放由JoySetCapture函数设置的在指定游戏杆设备上的捕获

joySetCapture 发送一个游戏杆消息到指定的窗口

joySetThreshold 设置指定的游戏杆设备的移动阈值

mciGetCreatorTask 为指定的MCI设备检取其创建的任务

mciGetDeviceID 返回和打开设备名相匹配的设备标识符

mciGetErrorString 检取描述指定媒介控制接口错误代码的字符串

mciGetYieldProc 返回和媒介控制接口的WAIT标志相关的回调函数的地址

mciSendCommand 向指定的媒介控制接口设备发送一条命令

mciSendString 向指定的媒介控制接口设备发送一个字符串

mciSetYieldProc 设置一个过程地址,在MCI设备因指定了WAIT标志而等待一个命令完成时,该过程被周期性调用

midiConnect 将指定的MIDI输入设备连接到输出设备

midiDisconnect 断开MIDI输入设备和输出设备的连接

midiInAddBuffer 向指定的音乐仪器数字接口的输入设备增加一个缓冲区

midiInClose 关闭指定的音乐仪器数字接口的输入设备

midiInGetDveCaps 查询指定的音乐仪器数字接口的输入设备,以确定其性能

midiInGetErrorText 检取有关音乐仪器数字接口的输入设备指定错误的文本说明

midiInGetID 获得一个音乐一起数字接口的输入设备的标识符

midiInGetNumDevs 检取系统中音乐仪器数字接口的输入设备的数量

midiInMessage 向指定的音乐仪器数字接口的输入设备驱动器发送一条消息

midiInOpen 打开指定的音乐仪器数字接口的输入设备

midiInPrepareHeader 为音乐仪器数字接口的输入设备准备一个缓冲区

midiInReset 在给定的MIDI输入设备上输入,并将所有挂起的输入缓冲区标记为已执行的

midiInStart 启动在指定的音乐仪器数字接口的输入设备上的输入

midiInStop 停止在给定的音乐仪器数字接口的输入设备上的输入

midiInUnprepareHeader 消除由midiInPrepareHeader函数完成的准备

midiOutCacheDrumPatches 请求内部的一个MIDI合成设备预装指定的基于键的击打音色集

midiOutCachePatches 请求内部的音乐仪器数字接口的合成设备预装指定的音色集

midiOutClose 关闭指定的音乐仪器数字接口的输出设备

midiOutGetDevCaps 查询指定的音乐仪器数字接口的输出设备,以确定其性能

midiOutGetErrorText 检取有关MIDI输出设备指定采取的文本说明

midiOutGetID 检取指定的MIDI输出设备的标识符

midiOutGetNumDevs 检取系统中存在的MIDI输出设备的数量

midiOutGetVolume 返回一个MIDI输出设备的当前卷设置

midiOutLongMsg 向指定的MIDI输出设备发送一条系统专用的MIDI消息

midiOutMessage 向一MIDI输出设备驱动器发送一条消息

midiOutOpen 打开指定的MIDI输出设备进行回放

midiOutPrepareHeader 为MIDI输出设备准备一个缓冲区

midiOutReset 为指定的MIDI输出设备关闭所有MIDI通道上的所有标志

midiOutSetVolume 设置一个MIDI输出设备的卷

midiOutShortMsg 向指定的MIDI输出设备发送一条短MIDI消息

midiOutUnprepareHeader 清除由midiOutPrepareHeader函数完成的准备

midiStreamClose 关闭一个打开的MIDI流

midiStreamOpen 为输出,打开一个MIDI流

midiStreamOut 在MIDI输出设备上播放或排队一个MIDI数据流

midiStreamPause 暂停一个MIDI流的播放

midiStreamPosition 在一个MIDI流中检取当前位置

midiStreamProperty 设置或检取与MIDI输出设备相关MIDI数据流的特性

midiStreamRestart 重新启动一个暂停的MIDI流

midiStreamStop 关掉指定MIDI输出设备的所有MIDI通道

mixerClose 关闭指定的混频器

mixerGetControlDetails 检取和一个声频指线路相关的单一控件的细节

mixerGetDevCaps 查询指定的混频器以确定其性能

mixerGetID 获取指定混频器的标识符

mixerGetLineContrils 检取和一个声频线路相关的一个或多个控件

mixerGetLineInfo 检取混频器有关特有线路的信息

mixerGetNumDevs 返回系统中存在的混频器的数量

mixerMessage 把一个定制混频器驱动器消息直接发送给混频器驱动器

mixerOpen 打开指定的混频器,在应用程序关闭该句柄前保证该设备不被移走

mixerSetControlDetails 设置和一个声频指线路相关的单一控件的细节

mmioAsvance 填充一个文件的IO缓冲区

mmioAscend 取出一个RIFF文件块

mmioClose 关闭有mmioOpen打开的文件

mmioCreateChunk 创建由mmioOpen函数打开的RIFF文件中的一个块

mmioDescend 进入由mmioOpen函数打开的RIFF文件的块中,并查找一个块

mmioFlush 把文件缓冲区的数据写入磁盘中

mmioGetInfo 检取有关由mmioOpen函数创建的RIFF文件的信息

mmioInstallIOProcA 装入或删除一个自定义的IO过程

mmioOpen 为输入输出打开一个文件

mmioRead 从由mmioOpen函数打开的文件中读取指定字节数的数据

mmioRename 重新命名指定的文件

mmioSeek 改变由mmioOpen函数打开的文件中的当前指针位置

mmioSendMessage 向与指定文件相联系的IO过程发送一条消息

mmioSetBuffer 允许或禁止文件缓冲区的IO,或改变这个缓冲区,或改变这个缓冲区的大小

mmioSetInfo 更新从被打开文件中检取的信息

mmioStringToFOURCC 把一个以NULL结束的字符串转换成一个4字符代码

mmioWrite 向由mmioOpen函数打开的文件中写入指定字节数的数据

mmsystemGetVersion 返回多媒体扩展系统软件的当前版本号

OpenDriver 打开一个可安装驱动器实例,并用缺省设置或指定值初始化该实例

PlaySound 播放一个波形声音

SendDriveMessage 向指定的可安装驱动器发送一条消息

SndPlaySound 播放一个由文件名或由登记的[sound]段的入口指定的波形声音

timeBeginPeriod 设置应用程序或驱动程序使用的最小定时器分辨率

timeEndPeriod 清除应用程序或驱动程序使用的最小定时器分辨率

timeGetDevCaps 查询定时器设备以确定其性能

timeGetSystemTime 检取从WINDOWS开始已逝去的毫秒数

timeGetTime 检取从WINDOWS开始已逝去的毫秒数,此函数比上一条函数开销小

timeKillEvent 毁掉指定的定时器回调事件

timeSetEvent 设置一个定时器回调事件

waveInAddBuffer 向波形输入设备添加一个输入缓冲区

WaveInClose 关闭指定的波形输入设置

waveInGetDevCaps 查询指定的波形输入设备以确定其性能

waveInGetErrorText 检取由指定的错误代码标识的文本说明

waveInGetID 获取指定的波形输入设备的标识符

waveInGetNumDevs 返回系统中存在的波形输入设备的数量

waveInGetPosition 检取指定波形输入设备的当前位置

waveInMessage 发送一条消息给波形输入设备的驱动器

waveInOpen 为录音而打开一个波形输入设备

waveInPrepareHeader 为波形输入准备一个输入缓冲区

waveInReset 停止给定的波形输入设备的输入,且将当前位置清零

waveInStart 启动在指定的波形输入设备的输入

waveInStop 停止在指定的波形输入设备上的输入

waveInUnprepareHeader 清除由waveInPrepareHeader函数实现的准备

waveOutBreakLoop 中断给定的波形输出设备上一个循环,并允许播放驱动器列表中的下一个块

waveOutClose 关闭指定的波形输出设备

waveOutGetDevCaps 查询一个指定的波形输出设备以确定其性能

waveOutGetErrorText 检取由指定的错误代码标识的文本说明

waveOutGetID 检取指定的波形输出设备的标识符

waveOutGetNumDevs 检取系统中存在的波形输出设备的数量

waveOutGetPitch 查询一个波形输出设备的当前音调设置

waveOutGetPlaybackRate 查询一个波形输出设备当前播放的速度

waveOutGetPosition 检取指定波形输出设备的当前播放位置

waveOutGetVolume 查询指定波形输出设备的当前音量设置

waveOutMessage 发送一条消息给一个波形输出设备的驱动器

waveOutOpen 为播放打开一个波形输出设备

waveOutPause 暂停指定波形输出设备上的播放

waveOutPrepareHeader 为播放准备一个波形缓冲区

waveOutRestart 重新启动一个被暂停的波形输出设备

waveOutSetPitch 设置一个波形输出设备的音调

waveOutSetPlaybackRate 设置指定波形输出设备的速度

waveOutSetVolume 设置指定的波形输出设备的音量

waveOutUnprepareHeader 清除由waveOutPrepareHeader函数实现的准备

waveOutWrite 向指定的波形输出设备发送一个数据块

 

1.2         WAVEX播放声音波形文件方法的大致流程

 

      常用mmio函数:

      mmioOpen( ) 打开一个RIFF文件

      mmioDescend ( ) 进入块

      mmioRead( ); 该取RIFF文件

      mmioAscend ( ); 跳出块

      mmioClose( ); 关闭PIFF文件

      对于块来说,进入块和跳出块是配对的。

 

      读取WAV文件的读取过程:

      mmioOpen( ) 打开文件

      ↓

      mmioDescend ("WAVE") 进入"fmt"块

      ↓

      mmioRead( ) 读取WAVE文件格式信息

      ↓

      mmioAscend ( ) 跳出"fmt"块

      ↓ 

      mmioDescend ("data") 进入"data"块

      ↓

      mmioRead( ) 读取WAVE数据信息

      ↓

      mmioClose( ) 关闭文件。 

    

      输出WAV文件的过程:

      WaveOutOpen () 打开一个输出设备

      ↓

      WaveOutPrepareHeader() 准备WAVE数据头。 

      ↓ 

      WaveOutWrite() 将数据写入设备并开始播放 

      ↓ 

      WaveOutReset() 停止播放并重置管理器 

      ↓ 

      WaveOutClose() 并闭播放设备 

      ↓ 

      WaveOutUnpareHeader() 清理用WaveOutPrepareHeader准备的Wave 

 

1.2.1                  mmioFOURCC
The mmioFOURCC macro converts four characters into a four-character code.

FOURCC mmioFOURCC(

   CHAR ch0,

   CHAR ch1,

   CHAR ch2,

   CHAR ch3 

);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值