我写了一个应用程序,应该可以在 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 版)

最佳答案

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

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

10-08 07:28