?? directsound.h
字號:
/*----------------------------------------------------------------*\
函 數:
void DirectSoundError(HRESULT hErr)
功 能:
DirectSound 錯誤信息顯示
參 數:
錯誤ID
返回值:
無
\*----------------------------------------------------------------*/
void DirectSoundError(char *ModuleName, HRESULT hresult);
/*----------------------------------------------------------------*\
函 數:
void DestroyDirectSound(void)
功 能:
銷毀DirectSound對象
參 數:
無
返回值:
無
\*----------------------------------------------------------------*/
void DestroyDirectSound(void);
/*----------------------------------------------------------------*\
函 數:
BOOL InitializeDirectSound(void)
功 能:
初始化DirectSound
參 數:
無
返回值:
TURE - 成功
FLASE - 失敗
\*----------------------------------------------------------------*/
DllExport BOOL InitializeDirectSound(void);
/*----------------------------------------------------------------*\
函 數:
LPDIRECTSOUNDBUFFER CreateSoundBuffer(DWORD dwBufSize,
DWORD dwFreq,
DWORD dwBitsPerSample,
DWORD dwBlkAlign,
BOOL bStereo)
功 能:
創建聲音緩沖區
參 數:
dwBufSize - 緩沖區容量
dwFreq - 采樣率(44100、22000...)
dwBitsPerSample - 樣本的比特位數(16、8、4...)
dwBlkAlign - 數據塊對齊,為1
bStereo - 立體聲(1) or 單聲道(0)
返回值:
!NULL - 成功,返回聲音緩沖區指針
NULL - 失敗
\*----------------------------------------------------------------*/
DllExport LPDIRECTSOUNDBUFFER dsCreateSoundBuffer(DWORD dwBufSize, // 緩沖區容量
DWORD dwFreq, // 采樣率(44100、22000...)
DWORD dwBitsPerSample, // 樣本的比特位數(16、8、4...)
DWORD dwBlkAlign, // 數據塊對齊
BOOL bStereo); // 立體聲 or 單聲道
/*----------------------------------------------------------------*\
函 數:
dsReadSoundDataFromBuff(LPDIRECTSOUNDBUFFER g_lpDSBuff, char *Buff, DWORD dwSize)
功 能:
從文件中讀聲音數據到聲音緩沖區中
參 數:
g_lpDSBuff - 聲音緩沖區
Buff - 文件指針
dwSize - 數據大小
返回值:
TRUE - 成功
FALSE - 失敗
\*----------------------------------------------------------------*/
DllExport BOOL dsReadSoundDataFromBuff(LPDIRECTSOUNDBUFFER g_lpDSBuff, char *Buff, DWORD dwSize);
/*----------------------------------------------------------------*\
函 數:
LPDIRECTSOUNDBUFFER dsLoadSoundFromBuff(char *Buff)
功 能:
根據數據緩沖區(Sound)創建面并將數據讀入面中
參 數:
Buff - 數據指針
返回值:
!NULL - 成功,返回聲音緩沖區指針
NULL - 失敗
\*----------------------------------------------------------------*/
DllExport LPDIRECTSOUNDBUFFER dsLoadSoundFromBuff(char *Buff);
/*----------------------------------------------------------------*\
函 數:
BOOL dsPlaySound(LPDIRECTSOUNDBUFFER g_lpDSBuff, int Pan, DWORD dwFlags)
功 能:
播放聲音
參 數:
g_lpDSBuff - 聲音緩沖區
Pan - 左右聲道均衡
dwFlags - 循環標志:0-不循環,1-循環
返回值:
TRUE - 成功
FLASE - 失敗
\*----------------------------------------------------------------*/
DllExport BOOL dsPlaySound(LPDIRECTSOUNDBUFFER g_lpDSBuff, int Pan, DWORD dwFlags);
/*----------------------------------------------------------------*\
函 數:
BOOL dsStopSound(LPDIRECTSOUNDBUFFER g_lpDSBuff)
功 能:
停止播放聲音
參 數:
g_lpDSBuff - 聲音緩沖區
返回值:
TRUE - 成功
FLASE - 失敗
\*----------------------------------------------------------------*/
DllExport BOOL dsStopSound(LPDIRECTSOUNDBUFFER g_lpDSBuff);
/*----------------------------------------------------------------*\
函 數:
BOOL dsSetSoundVolume(LPDIRECTSOUNDBUFFER g_lpDSBuff, LONG Volume)
功 能:
設置聲音的音量
參 數:
g_lpDSBuff - 聲音緩沖區
Volume - 音量
返回值:
TRUE - 成功
FLASE - 失敗
\*----------------------------------------------------------------*/
DllExport BOOL dsSetSoundVolume(LPDIRECTSOUNDBUFFER g_lpDSBuff, LONG Volume);
/*----------------------------------------------------------------*\
函 數:
LONG dsGetSoundVolume(LPDIRECTSOUNDBUFFER g_lpDSBuff)
功 能:
獲取聲音的音量
參 數:
g_lpDSBuff - 聲音緩沖區
返回值:
音量
\*----------------------------------------------------------------*/
DllExport LONG dsGetSoundVolume(LPDIRECTSOUNDBUFFER g_lpDSBuff);
/*----------------------------------------------------------------*\
| 函 數:DirectSound系統函數 -- DSOUND.DLL |
\*----------------------------------------------------------------*/
/*----------------------------------------------------------------*\
HRESULT DirectSoundCreate( // 創建DirectSound對象
LPGUID lpGuid, // 聲音驅動器, 缺省為NULL
LPDIRECTSOUND * ppDS, // DirectSound 對象指針
IUnknown FAR * pUnkOuter // 必須為NULL
);
IDirectSound::CreateSoundBuffer // 創建聲音緩沖區
HRESULT CreateSoundBuffer(
LPCDSBUFFERDESC lpcDSBufferDesc,
LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer,
IUnknown FAR * pUnkOuter // 必須為NULL
);
IDirectSound::SetCooperativeLevel // 設置協作層
HRESULT SetCooperativeLevel(
HWND hWnd, // 父窗口句柄
DWORD dwFlags // 控制標志
);
IDirectSoundBuffer::GetCurrentPosition // 取播放和寫的位置
HRESULT GetCurrentPosition(
LPDWORD lpdwCurrentPlayCursor, // 播放的位置
LPDWORD lpdwCurrentWriteCursor // 寫的位置
);
IDirectSoundBuffer::GetFrequency // 取采樣率
HRESULT GetFrequency(
LPDWORD lpdwFrequency
);
IDirectSoundBuffer::GetPan // 取左右聲道均衡
HRESULT GetPan(
LPLONG lplPan
);
IDirectSoundBuffer::GetStatus // 取緩沖區狀態
HRESULT GetStatus(LPDWORD lpdwStatus);
返回值:
DSBSTATUS_BUFFERLOST 緩沖區丟失
DSBSTATUS_LOOPING 循環播放
DSBSTATUS_PLAYING 正在播放
IDirectSoundBuffer::GetVolume // 取音量
HRESULT GetVolume(
LPLONG lplVolume
);
IDirectSoundBuffer::Lock // 獲取聲音緩沖區地址
HRESULT Lock(
DWORD dwWriteCursor,
DWORD dwWriteBytes,
LPVOID lplpvAudioPtr1,
LPDWORD lpdwAudioBytes1,
LPVOID lplpvAudioPtr2,
LPDWORD lpdwAudioBytes2,
DWORD dwFlags
);
IDirectSoundBuffer::Play // 聲音播放
HRESULT Play(
DWORD dwReserved1, // 保留. 必須為0.
DWORD dwReserved2, // 保留. 必須為0.
DWORD dwFlags // 播放方式. DSBPLAY_LOOPING -- 循環
);
IDirectSoundBuffer::Restore // 恢復丟失的面
HRESULT Restore();
IDirectSoundBuffer::SetCurrentPosition // 設置播放的位置
HRESULT SetCurrentPosition(
DWORD dwNewPosition // 新的播放位置
);
IDirectSoundBuffer::SetFrequency // 設置采樣率
HRESULT SetFrequency(
DWORD dwFrequency
);
IDirectSoundBuffer::SetPan // 設置左右聲道均衡
HRESULT SetPan(
LONG lPan
);
IDirectSoundBuffer::SetVolume // 設置音量
HRESULT SetVolume(
LONG lVolume
);
IDirectSoundBuffer::Stop // 停止聲音的播放
HRESULT Stop();
IDirectSoundBuffer::Unlock // 與Lock配合
HRESULT Unlock(
LPVOID lpvAudioPtr1,
DWORD dwAudioBytes1,
LPVOID lpvAudioPtr2,
DWORD dwAudioBytes2
);
\*----------------------------------------------------------------*/
/*----------------------------------------------------------------*\
| 函 數:DirectSound系統函數 -- DSOUND.DLL |
\*----------------------------------------------------------------*/
/////////////////////////[ End ]\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////////[ DirectSound 系統 ]\\\\\\\\\\\\\\\\\\\\\\\\\
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -