オーディオ サンプル値を読み取る必要があります。その audioQueue コールバックに使用しています (Apple SpeakHere の例から):
UInt32 samplesCount = inCompleteAQBuffer->mAudioDataBytesCapacity / 2;
UInt16 *samples = (UInt16 *)inCompleteAQBuffer->mAudioData;
for (int i=0; i < samplesCount; i++)
{
printf("%i\n", samples[i]);
}
値が返されますが、大胆さのグラフと比較すると、間違っているようです:
Audacity の値は 1 (65535) から -1 (0) です。したがって、論理的には、最初のサンプル値は 32767 で、2 番目のサンプル値は ~50 000 である必要があります ...
しかし、私は他の結果を受け取ります:
value - position
65535 - 0
29501 - 1
26086 - 2
63656 - 3
28477 - 4
65407 - 5
36802 - 6
36546 - 7
18244 - 8
17220 - 9
player settings:
(Float64) mSampleRate = 44100
(UInt32) mBytesPerPacket = 2
(UInt32) mFramesPerPacket = 1
(UInt32) mBytesPerFrame = 2
(UInt32) mChannelsPerFrame = 1
(UInt32) mBitsPerChannel = 16
(UInt32) mReserved = 0
質問 - mAudioData から返されるサンプル値が間違っているのはなぜですか?