Фоновая музыка Stop/Mute на iOS

Я создаю свое первое приложение. У меня есть приложение с музыкой, играющей в фоновом режиме со следующим кодом:

var backgroundMusicPlayer = AVAudioPlayer()

override func viewDidLoad() {
    super.viewDidLoad()

    //background Music
    func playBackgroundMusic(filename: String) {
        let url = NSBundle.mainBundle().URLForResource(filename, withExtension: nil)
        guard let newURL = url else {
            print("Could not find file: \(filename)")
            return
        }
        do {
            backgroundMusicPlayer = try AVAudioPlayer(contentsOfURL: newURL)
            backgroundMusicPlayer.numberOfLoops = -1
            backgroundMusicPlayer.prepareToPlay()
            backgroundMusicPlayer.play()
        } catch let error as NSError {
            print(error.description)
        }

    }

    playBackgroundMusic("Starship.wav")
}

Итак, что я должен сделать, чтобы остановить / отключить фоновую музыку при переключении на другой ViewController? Должен ли я сделать это мой FirstViewController или SecondViewController?

Очевидно, что я не хочу, чтобы звук был в SecondViewController, так как у меня есть другие вещи, которые будут там играть.

1 ответ

Решение

Чтобы отключить звук, я просто отключил звук.

backgroundMusicPlayer.volume = 0

и установите его в нормальное состояние, если я хочу звук

backgroundMusicPlayer.volume = 1

Если вы просто хотите приостановить музыку, вы можете позвонить

backgroundMusicPlayer.pause()

Для возобновления звоните

 backgroundMusicPlayer.resume()

Если вы хотите остановить музыку и восстановить ее в начале, вы говорите это

 backgroundMusicPlayer.stop()
 backgroundMusicPlayer.currentTime = 0        
 backgroundMusicPlayer.prepareToPlay()

Вы также подумали о том, чтобы поместить свою музыку в одноэлементный класс, чтобы было проще воспроизводить музыку в разных контроллерах view?

Не уверен, что это то, что вы ищете, так как ваш вопрос немного расплывчатый.

Другие вопросы по тегам