91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 35.34MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2023-06-22
  • 語言: 其他
  • 標簽: Directx??

資源簡介

利用DirectX中的XAudio2 API所寫關于在游戲中音頻播放的小樣例

資源截圖

代碼片段和文件信息

#include?“Utility.h“
#include?“WaveFile.h“



//搜索音頻文件
HRESULT FindMediaFile(WCHAR?*strDestPath?int?Dest?LPCWSTR?strFilename);

//////////////////////////////////////////////////////////////////////////
// Name:?Main()
// Describe:Entry?point?of?the?function
//////////////////////////////////////////////////////////////////////////
int?main()
{
//1.Initialize?XAudio2?初始化XAudio2
CoInitializeEx(NULL?COINIT_MULTITHREADED); //為當前線程初始化COM組件

IXAudio2?*pXAudio2?=?NULL;

HRESULT?hr;

//創建示列
if?(FAILED(hr=XAudio2Create(&pXAudio20XAUDIO2_DEFAULT_PROCESSOR)))
{
::MessageBox(NULL?L“XAudio2?Create?Failed“?L“Error“?NULL);
CoUninitialize(); ??//銷毀線程
return?hr;
}

//創建主聲音,這是最后音頻系統要通過該變量來播放聲音,很關鍵
IXAudio2MasteringVoice?*pMasterVoice?=?NULL;
if?(FAILED(hr=pXAudio2->CreateMasteringVoice(&pMasterVoice)))
{
::MessageBox(NULL?L“The?Mastering?voice?is?created?failed“?L“Error“?NULL);
CoUninitialize();
return?false;
}

//2.Locate?the?wave?file 查找音頻文件
WCHAR?strFilePath[MAX_PATH];
if?(FAILED(hr?=?FindMediaFile(strFilePath?MAX_PATH?L“Faded.wav“)))
{
return?hr;
}

//3.Read?in?the?wave?file
WaveFile?wav;
if?(FAILED(hr?=?wav.Open(L“Faded.wav“?NULL?WAVEFILE_READ)))
{
return?hr;
}

//Get?format?of?wave?file
WAVEFORMATEX?*pwfx?=?wav.GetFormat();

//Calculate?how?much?bytes?and?samples?are?in?the?wave
DWORD?cbWaveSize?=?wav.GetSize();

//read?the?sample?data?into?memory
BYTE?*pbWaveData?=?new?BYTE[cbWaveSize];

if?(FAILED(hr?=?wav.Read(pbWaveData?cbWaveSize?&cbWaveSize)))
{
SAFE_DELETE_ARRAY(pbWaveData);
return?hr;
}

//4.Create?a?Source?Voice??創建源聲音,要播放的聲音需要通過它來轉變
IXAudio2SourceVoice?*pSourceVoice;
if?(FAILED(hr?=?pXAudio2->CreateSourceVoice(&pSourceVoice?pwfx)))
{
::MessageBox(NULL?L“The?Source?Voice?is?Created?failed“?L“Error“?MB_OK);
return?FALSE;
}

//5.Submit?an?XAudio2?Buffer?to?the?source?voice?將緩沖區內的音頻提交給源聲音
XAUDIO2_BUFFER?buffer?=?{?0?};
buffer.pAudioData?=?pbWaveData;
buffer.Flags?=?XAUDIO2_END_OF_STREAM; //tell?the?source?voice?not?to?expect?any?data?after?this?buffer
buffer.AudioBytes?=?cbWaveSize;

if?(FAILED(hr?=?pSourceVoice->SubmitSourceBuffer(&buffer)))
{
::MessageBox(NULL?L“Submit?an?XAudio2_Buffer?Failed“?L“Error“?MB_OK);
pSourceVoice->DestroyVoice();
SAFE_DELETE_ARRAY(pbWaveData);
return?FALSE;
}

//6.Play?a?Sound?with?XAudio2
wprintf_s(L“Playing?Faded?Wave?file......“);
while?(TRUE)
{
if?(FAILED(hr?=?pSourceVoice->Start(0)))
{
return?FALSE;
}

//Get?the?voice‘s?state
BOOL?isRunning?=?TRUE;
while?(SUCCEEDED(hr)?&&?isRunning)
{
XAUDIO2_VOICE_STATE?state;
pSourceVoice->GetState(&state);
isRunning?=?(state.BuffersQueued?>?0)?!=?0;

Sleep(10);
system(“pause“);
}
}

//Release?all?resource
pMasterVoice->DestroyVoice();
pSourceVoice->DestroyVoice();
SAFE_DELETE_ARRAY(pbWaveData);
CoUninitialize();
retu

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-10-18?17:59??DXMusic?by?冷崖\
?????目錄???????????0??2017-10-18?16:59??DXMusic?by?冷崖\.vs\
?????目錄???????????0??2017-10-18?16:59??DXMusic?by?冷崖\.vs\DXMusic\
?????目錄???????????0??2017-10-18?16:59??DXMusic?by?冷崖\.vs\DXMusic\v14\
?????文件???????41472??2017-10-19?17:42??DXMusic?by?冷崖\.vs\DXMusic\v14\.suo
?????目錄???????????0??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\
?????文件????????7905??2017-10-19?15:23??DXMusic?by?冷崖\DXMusic\DXMusic.vcxproj
?????文件????????1247??2017-10-19?15:23??DXMusic?by?冷崖\DXMusic\DXMusic.vcxproj.filters
?????目錄???????????0??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\
?????文件?????????150??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\DXMusic.log
?????目錄???????????0??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\DXMusic.tlog\
?????文件????????1226??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\DXMusic.tlog\CL.command.1.tlog
?????文件???????67314??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\DXMusic.tlog\CL.read.1.tlog
?????文件?????????774??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\DXMusic.tlog\CL.write.1.tlog
?????文件?????????194??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\DXMusic.tlog\DXMusic.lastbuildstate
?????文件????????1188??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\DXMusic.tlog\link.command.1.tlog
?????文件????????3314??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\DXMusic.tlog\link.read.1.tlog
?????文件?????????460??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\DXMusic.tlog\link.write.1.tlog
?????文件???????76853??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\Main.obj
?????文件???????73957??2017-10-19?15:24??DXMusic?by?冷崖\DXMusic\Debug\WaveFile.obj
?????文件?????1035264??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\vc140.idb
?????文件??????708608??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Debug\vc140.pdb
?????文件????37518602??2017-09-30?21:27??DXMusic?by?冷崖\DXMusic\Faded.wav
?????文件????????5537??2017-10-19?15:33??DXMusic?by?冷崖\DXMusic\Main.cpp
?????文件?????????565??2017-10-19?15:24??DXMusic?by?冷崖\DXMusic\Utility.h
?????文件???????15359??2017-10-19?15:23??DXMusic?by?冷崖\DXMusic\WaveFile.cpp
?????文件????????1575??2017-10-18?18:44??DXMusic?by?冷崖\DXMusic\WaveFile.h
?????文件????????1303??2017-10-18?16:59??DXMusic?by?冷崖\DXMusic.sln
?????目錄???????????0??2017-10-19?15:24??DXMusic?by?冷崖\Debug\
?????文件???????57344??2017-10-19?15:33??DXMusic?by?冷崖\Debug\DXMusic.exe
?????文件??????424860??2017-10-19?15:33??DXMusic?by?冷崖\Debug\DXMusic.ilk
............此處省略1個文件信息

評論

共有 條評論