1
オーディオサンプル値を読み取る必要があります。私は(アップルSpeakHere例から)そのaudioQueueコールバックのために使用しています:AudioQueueのサンプル値が正しくない
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である必要があり、第二は、〜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から返された理由は間違っていますか?
ありがとうございます。しかし、私は既に[リンク](https://github.com/reinforce-lab/MonoTouch.AudioUnit)とSInt32のサンプルオーディオを使用してサンプル値を取得しました。 Btw、SInt16とUInt16の違いは? SInt16の代わりにUInt16を使用して0(SInt16の-32767)から65535(SInt16の32767)までの範囲の値を取得することは間違っていますか? – f3n1kc
私は大丈夫ですが、バイトスワップとSInt16を使用しない限り、大胆さと同じ値は表示されません。 – hooleyhoop