要發揮出自己的測試波形文件,我設置以下格式fmt
:分析波頭
fmt.setChannelCount(2);
fmt.setCodec("audio/pcm");
fmt.setByteOrder(QAudioFormat::LittleEndian);
fmt.setSampleType(QAudioFormat::SignedInt);
fmt.setSampleRate(44100);
fmt.setSampleSize(16);
它還可以與這些設置:
fmt.setSampleRate(22050);
fmt.setSampleSize(32);
這些設置都是爲了一個QAudioOutput:
player = new QAudioOutput(fmt);
file = new QFile(fileName);
file->open(QIODevice::ReadOnly);
player->start(file);
使用此設置,我可以正確播放測試波形文件。
但我想通過閱讀標題來檢測格式的設置。
我分析它,它說:
Opening WAV file at: "C:/Deep Purple - Anthology (Disc 2) - 09 - Hold On.wav"
The size of the WAV file is: 53994908
WAV File Header read:
File Type: "RIFFWAVE"
File Size: 53994900
WAV Marker: "WAVE"
Format Name: "fmt??("
Format Length: 4128
Format Type: 256
Number of Channels: 512
Sample Rate: 11289600
Sample Rate * Bits/Sample * Channels/8: 45158400
Bits per Sample * Channels/8.1: 1024
Bits per Sample: 4096
Data Header: ""
Data Size: 937783393
如果我除以信道數的採樣率,我得到的每22050.通道的採樣率,但爲什麼我設置44100進行聽起來不錯?爲什麼有512個頻道?用Audacity打開文件,只有2(Audacity說:立體聲,44100Hz,32位浮點數)。
你正在分析它的方式是在琢磨它。你怎麼分析它? – Radiodef 2014-11-23 21:42:51
我不知道什麼是gar花。我的意思是我檢測音頻的採樣率和這樣的事情。根據Riff WAV規格閱讀標題。 – user2366975 2014-11-23 22:08:53
但是,您正在讀取標題,導致字節被偏移。 ('512'是'2'加一個額外的字節......'11289600'是'44100'加一個額外的字節......)你如何閱讀頭文件? – Radiodef 2014-11-23 22:48:12