AVAudioPlayer не работает на iPhone 5

Кто-нибудь испытывал проблемы с AVAudioPlayer на iPhone 5? Мой код работал правильно на iPhone 4, iPhone 4S и iPad (3-го поколения), но сейчас он случайно не работает на iPhone 5. Я видел этот вопрос, но никто не рассматривал реальную проблему:

AVAudioPlayer не работает на iPhone 5

NSURL *soundURL = [self urlForAlarmSong:songKey];    
NSError *err;
self.audioAlert = [[[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&err] autorelease];

[self.audioAlert prepareToPlay];
currentVolume=[MPMusicPlayerController applicationMusicPlayer].volume;
[[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0];

[self.audioAlert play];

audioAlert - это AVAudioPlayer, который я объявил в моем заголовке с помощью (сохранить, неатомарно). Переменная err имеет значение null каждый раз, даже если она не воспроизводится на iPhone 5. Этот код работает без сбоев каждый раз на iPhone 4, iPhone 4S и iPad (3-го поколения).

У кого-нибудь есть какие-либо идеи?? Спасибо


person Makleesh    schedule 04.12.2012    source источник
comment
Когда вы говорите, что он не работает на iPhone 5, вы имеете в виду, что он вообще не работает или просто нет звука? Вы проверили свойства AVAudioPlayer (например, currentTime, isPlaying), чтобы убедиться, что он действительно воспроизводится?   -  person rocky    schedule 04.12.2012
comment
Вы где-то устанавливаете AVAudioSession?   -  person 8vius    schedule 05.12.2012


Ответы (2)


 -(void)viewDidLoad

  {

  NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"click2"         ofType:@"mp3"]];

    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
    if(error)
    {
        NSLog(@"error in audio player:%@",[error localizedDescription]);
    }
    else

    {

     audioPlayer.delegate=self;

     [audioPlayer prepareToPlay];
    }

   }

по действию кнопки,

-(IBAction)SoundButton:(id)sender

     {

       [audioPlayer play];

     }

В вашем .h файле не забудьте импортировать

   #import  AVFoundation/AVFoundation.h

и добавить делегата AVAudioPlayerDelegate.

person Kaushal Bisht    schedule 05.12.2012

Убедитесь, что переключатель звука устройства не находится в положении «без звука» и уровень громкости достаточно высокий.

Выглядит довольно очевидно, но может сэкономить часы стресса.

person k20    schedule 04.12.2012
comment
[[MPMusicPlayerController applicationMusicPlayer] setVolume: 1.0]; увеличивает громкость до максимума, так что проблема не в этом - person Makleesh; 05.12.2012
comment
Я не уверен, изменит ли он также переключатель отключения звука - person k20; 05.12.2012