我正在使用DirectSound處理項目,並試圖使聲音文件的標頭信息傳遞給處理方法。 WAV文件在開始時有一個RIFF塊ID。在調用ProcessWaveFile方法時,我傳遞文件路徑以及標題信息。 'RIFF'chunkID存儲在char中。我需要能夠根據實際文件chunkID檢查chunkID的單個字符,以確保文件是正確的。這是我的代碼片段:c - 從字符中讀取單個字符
if((waveFileHeader.chunkId[0] != chunkID[0]) || (waveFileHeader.chunkId[1] != chunkID[1]) ||
(waveFileHeader.chunkId[2] != chunkID[2]) || (waveFileHeader.chunkId[3] != chunkID[3]))
{
MessageBox(hwnd, L"ChunkID not in the right Format.", L"Error", MB_OK);
return false;
}
是塊ID文件的實際ID,而爲塊ID通過函數傳遞給檢查ID。正如你所看到的,我試圖在這裏像一個數組一樣處理它。 chunkId存儲在char []中。我應該將chunkID存儲在數組中嗎?我將如何指定它?
bool ProcessWaveFile(char*, IDirectSoundBuffer8**, HWND, int, char, char, char, char, std::string, int, int);
以上是ProcessWaveFile方法的頭文件行。 chunkID被指定爲其中一個字符。我可以將其更改爲char [],但實際調用方法時會遇到困難。以下是一個示例調用:
result1 = ProcessWaveFile("../terrain_sky/data/sound01.wav", &m_secondaryBuffer1, hwnd,
44100, 'RIFF', 'fmt ', 'WAVE', 'data', "WAVE_PCM_FORMAT", 16, 2);
如何在不中斷變量鏈的情況下在此調用中聲明包含RIFF的數組值?
沒關係,我現在通過簡單地通過其他方法解釋字符串來找到解決方法,但是感謝您的傑出答案。我不確定我最終可以處理哪種頭部,因此需要使頭部需求更加可調整。 – Chrayfish