3

私は Aran Mulhollan の RemoteIOPlayer を使用しており、SDK iphone で audioqueues を使用しています。問題なくできます: - 2 つの信号を追加してサウンドをミックスする - wav ファイルから取得した UInt32 を掛けて音量を上げる

しかし、他のすべての操作では、歪んで歪んだサウンドが得られ、特に信号を分割できません。私は自分が間違っていることを理解できないようです.除算の実際の結果は問題ないようです; サウンド/信号処理のいくつかの側面は、明らかに私を逃れているに違いありません:)

どんな助けでも大歓迎です!

4

3 に答える 3

1

このようなことを試しましたか?

- (void)setQueue:(AudioQueueRef)ref toVolume:(float)newValue {
  OSStatus rc = AudioQueueSetParameter(ref, kAudioQueueParam_Volume, newValue);
  if (rc) {
    NSLog(@"AudioQueueSetParameter returned %d when setting the volume.\n", rc);
  }
}
于 2009-11-19T07:43:10.483 に答える
0

iPhone はオーディオを 16 ビット整数として扱います。ほとんどのオーディオ ファイルは、ピーク サンプル値が 16 ビットの符号付き整数に収まる最大値になるように、既に正規化されています。つまり、このようなサンプルを 2 つ一緒に追加すると、オーバーフローが発生するか、この場合はオーディオ クリッピングが発生します。2 つのオーディオ ソースを一緒にミックスし、クリッピングがないことを確認する場合は、サンプルを平均化する必要があります。つまり、サンプルを加算して 2 で割ります。または、音量を半分に設定します。デシベルを使用している場合、それは約 -6 dB の変化になります。

于 2009-12-30T23:36:37.090 に答える