系统声音通过扬声器非常安静地播放 - C,Objective-C
Posted
技术标签:
【中文标题】系统声音通过扬声器非常安静地播放 - C,Objective-C【英文标题】:System Sound plays very quietly over speakers - C, Objective-C 【发布时间】:2013-02-28 21:08:19 【问题描述】:我在 Objective-C 中使用 AudioservicesPlaySystemSound 来播放我的音效。它们在模拟器和我的 iPad 扬声器上播放的声音非常响亮,但是当我将 iPad 上的音频线插入扬声器时,声音低得离谱,几乎听不见。我尝试了不同的扬声器并获得了相同的效果。通过蓝牙,声音仍然很安静,但至少可以听到。这是我的代码:
- (IBAction)playSound:(UIButton *)sender
NSString *path = [NSString stringWithFormat: @"%@/%@", [[NSBundle mainBundle] resourcePath], @"MySoundEffect.caf"];
NSURL *filePath = [NSURL fileURLWithPath: path isDirectory: NO];
NSLog(@"filepath = %@", filePath);
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)filePath, &soundID);
AudioServicesPlaySystemSound(soundID);
【问题讨论】:
不要滥用格式字符串来构造路径名。[[NSBundle mainBundle] pathForResource:@"MySoundEffect" ofType:@"caf"]
应该足够好了。
简单问题:扬声器有内置放大器吗? ie 他们有动力吗?当您将它们插入不同的设备时,它们会产生正常的音量吗?听起来您正试图直接从线路电平输出驱动扬声器。
或者 iPad 的耳机音量设置得很低……
@H2CO3 滥用格式字符串与此问题无关,因为声音有效,我之前尝试过“ofType”格式并且遇到了同样的问题。
@fiorgodx 我知道,这只是一个旁注......
【参考方案1】:
这似乎是仅使用 AudioServicesPlaySystemSound 的问题。我的解决方法是使用 SimpleAudioEngine,它会在幕后完成一些工作,我认为即使通过蓝牙或线路播放也能保持音频音量和质量不变。
【讨论】:
以上是关于系统声音通过扬声器非常安静地播放 - C,Objective-C的主要内容,如果未能解决你的问题,请参考以下文章
Swift + AVAudioRecorder 非常安静地录制
AVAudioRecorder & AVAudioPlayer - 内置扬声器的声音输出,如何更改?