【发布时间】: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 我知道,这只是一个旁注......
标签: objective-c c audio