在iPhone上运行的应用程序声音太低

时间:2010-11-12 11:34:09

标签: iphone ios avaudioplayer volume

我写了一个应该在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(Vers.4.1)

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:2)

对于iOS7,不推荐使用AudioSessionSetProperty。以下帖子中代工厂的答案显示了如何为iOS7做到这一点:

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