AVQueuePlayer не воспроизводит звук после первого использования - PullRequest
0 голосов
/ 29 апреля 2018

Я использую AVQueuePlayer для воспроизведения нескольких звуков подряд. Это отлично работает, даже в фоновом режиме.

Проблема возникает после того, как проигрыватель заканчивается, или после того, как я пытаюсь отменить игрока с чем-то вроде audioPlayer.pause() или audioPlayer removeAllItems(). В обоих случаях я не могу использовать плеер снова, он просто не начинает играть снова.

Логика для моего проигрывателя находится в дополнительном классе под названием «SoundManager.swift», который вызывается моим PlayerViewController. После того, как проигрыватель завершается или я приостанавливаю его, приложение возвращается к StartViewController. С этого момента я хочу снова вызвать PlayerViewController, чтобы снова запустить плеер с новыми предметами. Я понятия не имею, что пошло не так.

Это часть моего кода, где я начинаю и пытаюсь завершить проигрыватель.

// В "SoundManager.swift"

func play() {
    session = AVAudioSession.sharedInstance()
    do {
        try session.setCategory(AVAudioSessionCategoryPlayback)
    } catch { print(error) }

    audioPlayer = AVQueuePlayer(items: playerItems)
    audioPlayer.play()
}

func stop() {
    audioPlayer.pause()

    do {
    try session.setActive(false)
    } catch {print(error)}

    audioPlayer.removeAllItems()
}

// В PlayerViewController

   func startSession() {
        audio.play()
    }

@IBAction func cancle(_ sender: Any) {
        audio.stop()
        dismiss(animated: true, completion: nil)
    }
...