首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iphone的sdk Audioqueue上降低音量?

如何在iphone的sdk Audioqueue上降低音量?
EN

Stack Overflow用户
提问于 2009-10-08 20:50:40
回答 3查看 1.9K关注 0票数 3

我使用的是Aran Mulhollan的RemoteIOPlayer,使用的是SDK iphone中的音频队列。我可以没有问题:-添加两个信号来混合声音-通过乘以我从wav文件中获得的UInt32来增加音量

但每一次其他操作都会产生扭曲和失真的声音,特别是我不能将信号分开。我似乎找不出我做错了什么,划分的实际结果似乎是好的;声音/信号处理的某些方面肯定是我无法理解的:)

感谢任何人的帮助!

EN

回答 3

Stack Overflow用户

发布于 2009-11-19 15:43:10

你试过这样的东西吗?

代码语言:javascript
复制
- (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);
  }
}
票数 1
EN

Stack Overflow用户

发布于 2010-01-20 06:11:31

首先,您提到的代码不使用AudioQueues,它使用AudioUnits。在iphone中混音的最好方法是使用内置的混音器单元,在你从here下载的原始示例的网站上有一些代码。除此之外,我会在你的代码os中检查你是否有正确的数据类型。当你应该使用有符号整数时,你是否在尝试你的无符号整数操作?通常这会产生扭曲的结果(可以理解)

票数 1
EN

Stack Overflow用户

发布于 2009-12-31 07:36:37

iPhone将音频作为16位整数进行处理。大多数音频文件已经被标准化,因此峰值样本值是适合16位有符号整数的最大值。这意味着如果将两个这样的样本加在一起,就会出现溢出,或者在本例中是音频剪辑。如果要将两个音频源混合在一起,并确保没有剪辑,则必须对样本进行平均:将它们相加并除以2。或者将音量设置为一半。如果你使用的是分贝,那大约是-6 dB变化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1540380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档