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