В моем mainmenuviewcontroller в viewDidLoad
, я говорю ему, чтобы играть на фоне песни. Проблема в том, что когда пользователь переходит к другому виду, а затем возвращается в главное меню, он снова начинает воспроизведение песни, и две копии перекрываются. Я пытался поставить это в viewDidLoad
, но он не работаетAVAudioPlayer, играющий сверхурочно viewcont. грузы [Swift]
if themePlayer.playing == false {
themePlayer.prepareToPlay()
themePlayer.play()
}
Это просто вид игнорирует, если условие и играет в любом случае. Как я могу это исправить?
Я попробовал как viewDidAppear, так и viewWillAppear. Я все еще получаю ту же проблему. Когда я перехожу обратно в главное меню, другая копия звукового клипа начинает воспроизводиться поверх оригинала, и это звучит как две песни, которые воспроизводятся одновременно. – jonathanlv7
Здесь находится код: 'override func viewDidAppear (анимированный: Bool) { super.viewDidAppear (анимированный); // музыка темы пусть soundURL = NSBundle.mainBundle() URLForResource ("прес песня", withExtension: "mp3") themePlayer = AVAudioPlayer (contentsOfURL: soundURL, ошибка: ноль). themePlayer.numberOfLoops = - 1 themePlayer.volume = 0,1 , если themePlayer.playing == ложь { themePlayer.prepareToPlay() themePlayer.play() } }» – jonathanlv7
Вы повторно инициализируете плеер в viewDidAppear, который, я подозреваю, поэтому он снова воспроизведет песню в 'if themePlayer.playing == false'. Перед инициализацией themePlayer в 'viewDidAppear', проверьте, если он уже инициализирован, поскольку нет смысла создавать новый. Я обновлю свой ответ, чтобы код был отформатирован правильно. – timgcarlson