2013-06-30 1 views
0

Я запускаю аудиофайл в фоновом режиме при запуске приложения. Функция вызывается в viewDidLoad.iOS: сброс аудиоплеера, когда приложение больше не находится на переднем плане

-(void)playsong 
{ 
    NSString *songUrl = [[NSBundle mainBundle] pathForResource:@"chant" ofType:@"m4a"]; 
    NSData *songFile = [NSData dataWithContentsOfFile:songUrl]; 

    NSError *error; 
    audioPlayer = [[AVAudioPlayer alloc] initWithData:songFile error:&error ]; 
    [audioPlayer play]; 
} 

Когда пользователь нажимает на кнопку домой, и текущая позиция песни 10 секунд, песня прекратит играть. Но когда пользователь снова открывает приложение, песня начинается с той же позиции.

Я хотел бы, чтобы он начинался с самого начала каждый раз, когда приложение открывается.

Плюс по соображениям памяти не лучше ли освободить память?

Я пытался вызвать функцию из

- (void)viewWillAppear:(BOOL)animated 

, а затем установить его на ноль в

- (void)viewWillDisappear:(BOOL)animated 

но метод - (Недействительными) viewWillDisappear: (BOOL) анимированный не вызывался ,

ответ

1

Если viewWillDisappear не работает на вас, попробуйте добавить наблюдателя в центр NSNotification, который вызывает метод, когда приложение didEnterBackground. Как так:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(enteredBackground:) 
              name:UIApplicationDidEnterBackgroundNotification 
              object:nil]; 

Добавьте код в этот метод:

-(void)enteredBackground:(NSNotification *)notification { 

} 

Надеется, что это помогает!

UPDATE

Итак, откуда вы хотите Acces звуковой объект в о нас посмотреть, попробовать это:

HomeViewController *HomeVC = [HomeViewController alloc] init]; 

HomeVC.audioPlayer...//then do what you want with it 

До тех пор, как вы объявили звуковой объект в home VC, тогда это должно сработать.

Удостоверьтесь, что вы импортировали контроллер Homeview в один из контроллеров представлений о нас, а также файлы.

+0

спасибо, что это сработало! Только одно, если перейти к представлению «О нас», а затем закрыть приложение. При повторном открытии песня перезапускается с той же позиции. Как я могу получить доступ к аудиообъекту, определенному в представлении «Главная» в представлении «О нас»? –

+1

Ive отредактировал мой ответ – dylaank

+0

Vamos! Большое спасибо... –

Смежные вопросы