MMRESULT waveOutGetPlaybackRate(hWaveOut, lpdwRate) | |||
HWAVEOUT hWaveOut; | |||
LPDWORD lpdwRate; |
The waveOutGetPlaybackRate function queries the current playback rate setting of a waveform output device.
hWaveOut
Specifies a handle to the waveform output device.
lpdwRate
Specifies a far pointer to a location to be filled with the current playback rate. The playback rate setting is a multiplier indicating the current change in playback rate from the original authored setting. The playback rate multiplier must be a positive value.
The rate is specified as a fixed-point value. The high-order word of the DWORD location contains the signed integer part of the number,and the low-order word contains the fractional part. The fraction is expressed as a WORD in which a value of 0x8000 represents one half,and 0x4000 represents one quarter. For example, the value 0x00010000 specifies a multiplier of 1.0 (no playback rate change), and a value of 0x000F8000 specifies a multiplier of 15.5.
Returns zero if the function was successful. Otherwise, it returns an error number. Possible error returns are:
Value | Meaning |
MMSYSERR_INVALHANDLE | Specified device handle is invalid. |
MMSYSERR_NOTSUPPORTED | Function isn't supported. |
MMSYSERR_HANDLEBUSY | The handle hWaveOut is in use on another thread. |
Changing the playback rate does not change the sample rate but does change the playback time.
Not all devices support playback rate changes. To determine whether a device supports playback rate changes, use the WAVECAPS_PLAYBACKRATE flag to test the dwSupport field of the WAVEOUTCAPS structure (filled by waveOutGetDevCaps).
waveOutSetPlaybackRate, waveOutSetPitch, waveOutGetPitch