[英]Can 8-bit (bits per sample) PCM WAV files contain more than one channel?
我意識到忽略這種想法對我來說很糟糕,因為從這個角度number of channels
,我沒有閱讀有關bits per sample
number of channels
和bits per sample
任何信息。 我的原因是我不確定2通道8位PCM文件的樣例如何。
是1 sample = 1 channel
嗎? 或1 sample = 4 bits (left) + 4 bits (right)
上下文:我正在編寫一個讀取WAV文件的程序,我想到如果遇到8位PCM WAV文件,並且我的代碼以這種方式讀取(請參見下文),則我的程序將無法正確讀取多個通道8位PCM WAV文件。
// read actual audio data after obtaining
// the headers
// audioData is a vector of vectors (1 vector per channel)
uint32_t temp;
while( !feof(wavFile) ) {
for(uint16_t i = 0; i < numChannels; i++) {
temp = 0;
fread(&temp,sizeof(uint8_t),1,wavFile);
audioData.at(i).push_back(temp);
}
}
該結構通常描述WAV音頻數據的格式,在MSDN的此處描述: WAVEFORMATEX結構 :
nBlockAlign
值是對應於樣本的此類塊的大小(以字節為單位) nSamplesPerSec
值定義的特定固定速率進行 nChannels
值組成,每個wBitsPerSample
也就是說,每個樣本有8位的兩個通道文件對於音頻數據的每一秒都有nSamplesPerSec
對,每對文件中的每個通道都包含兩個8位值。
( 這是WAV文件中存在此結構的示例-盡管這是使用24位/樣本的更為復雜的情況,但您應該明白這一點)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.