iPhone 上运行的 App 声音太小

Posted

技术标签:

【中文标题】iPhone 上运行的 App 声音太小【英文标题】:Sound of App running on iPhone too low 【发布时间】:2010-11-12 11:34:08 【问题描述】:

我编写了一个可以在 iPad 和 iPhone 上运行的应用程序。我正在使用 AVAudioPlayer 播放声音。现在我在音量方面遇到了一些问题。

在 iPad 上运行时,一切都很好,正在播放的声音的音量也很好,在 iPad 模拟器中运行时也是如此。

当应用程序在 iPhone 上运行时会出现问题:虽然 iPhone 模拟器中的音量很好,但设备上的音量却很低。

这是我在两台设备上使用的代码:

if (audioPlayerAtmo==nil)

    NSString *filename = [NSString stringWithFormat:@"Atmo_%i", currentPage];
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:filename ofType:@"mp3"]];
    AVAudioPlayer *tempPlayer =[[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
    tempPlayer.delegate = self;
    //NSLog(@"tempPlayer.volume: %f", [tempPlayer volume]);
    [tempPlayer setVolume:1.0f];
    //NSLog(@"tempPlayer.volume: %f", [tempPlayer volume]);
    self.audioPlayerAtmo = tempPlayer;
    [tempPlayer release];
    [audioPlayerAtmo play];
    btAtmo.selected = YES;

else // player exists 

    // ...

是否有人知道为什么 iPhone 上的级别如此之低,而模拟器和 iPad 上的一切都很好?

提前感谢您的帮助。

技术数据: XCode 3.2.4 iPhone 4(4.1 版)

【问题讨论】:

【参考方案1】:

您确定将音频路由到正确的扬声器吗?

UInt32 doChangeDefaultRoute = 1;        
AudiosessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);

【讨论】:

我们需要在每个实例都写这行代码,还是在某个地方一次写?【参考方案2】:

对于 iOS7,AudioSessionSetProperty 已弃用。 Foundry 的以下帖子中的答案显示了如何为 iOS7 执行此操作:

https://***.com/a/18808124/1949877

【讨论】:

非常感谢您的提醒!

以上是关于iPhone 上运行的 App 声音太小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 上精确播放声音?

在 iPhone 上完美连续播放声音

声音在 iPhone 模拟器中不起作用?

Xcode 游戏声音可以在 sim 卡和 iPad 上播放,但不能在 iPhone 6 上播放

iPhone:如何在 iPod 声音上播放声音?

Flutter App 在模拟器(Iphone 12 mini)上完美运行,但在设备上崩溃(Iphone 8 plus)