Звук приложения, работающего на iPhone, слишком тихий

Я написал приложение, которое должно работать как на 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 
{
    // ...
}

У кого-нибудь есть идеи, почему на айфоне такой низкий уровень, а в симуляторе и на айпаде все нормально?

Заранее спасибо за помощь.

Технические данные: XCode 3.2.4 iPhone 4 (версия 4.1)


person MatthiasC    schedule 12.11.2010    source источник


Ответы (2)


Вы уверены, что направляете звук на правильный динамик?

UInt32 doChangeDefaultRoute = 1;        
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);
person iRyanBell    schedule 12.11.2010
comment
нам нужно писать эту строку кода в каждом экземпляре или писать сразу где-то? - person Sachin Siwal; 11.01.2014

Для iOS7 AudioSessionSetProperty устарело. Ответ в следующем посте Foundry показывает, как это сделать для iOS7:

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

person Scott Carter    schedule 01.11.2013
comment
Большое спасибо за наводку! - person MatthiasC; 04.11.2013