2016-08-11 1 views
-1

У меня вопрос, подобный тому, который этот парень спросил год назад. Разница в том, что я не могу это исправить.Как вызвать песню в didMoveToView(), один раз, при переключении через несколько контроллеров представления?

How can I continuously play background music while switching to different views using swift?

Пользователь ответил на свой вопрос с этим: «Вы можете запускать и останавливать музыку с AppDelegate ... Лучше всего было бы создать MusicPlayer класс, создать его экземпляр в AppDelegate и вызвать запуск и остановить методы в нем ...

есть ли у вас достаточно опыта, чтобы написать что-то подобное?

Или я должен вам помочь?»

Возможно, мне нужно отредактировать делегат приложения? Ниже приведена моя функция viewDidLoad. Здесь я вызываю звук, но каждый раз, когда я загружаю контроллер вида, он будет загружать и воспроизводить песню в дополнение к тому, как она была загружена в первый раз. Как я могу воспроизвести песню, которая будет загружена в контроллере просмотра, и играть во время работы приложения, независимо от того, в каком виде я нахожусь?

override func viewDidLoad() { 
     super.viewDidLoad() 

      let path = NSBundle.mainBundle().pathForResource("Theme", ofType: "wav") 

      let soundURL = NSURL(fileURLWithPath: path!) 

      do { 
       try theme = AVAudioPlayer(contentsOfURL: soundURL) 
       theme.prepareToPlay() 
      } catch let err as NSError { 
       print(err.debugDescription) 
      } 
// trying to make the music refrain from playing simultaneously 
      if !theme.playing { 
       theme.play() 
      } 

       theme.numberOfLoops = -1 
     } 

ответ

0

Просто поместите весь этот код аудиоплеера в файл делегата приложения в методе didFinishLaunchingWithOptions. Это будет воспроизводить аудиофайл только один раз, когда приложение начнется и навсегда, пока не будет сказано.