추천 노래 카드가 반복 재생될 것을 기대했으나
1회 재생 후 플리의 다음 노래가 재생된다.
private func setupAudioPlayer() {
audioPlayer.musicItemDidPlayToEndTimeObserver = NotificationCenter.default.addObserver(
forName: .AVPlayerItemDidPlayToEndTime,
object: nil,
queue: .main
) { _ in
DispatchQueue.main.async { [weak self] in
self?.handlePlaybackCompletion()
}
}
}
weak self로 바뀌어서
push된 PlaylistDetailView가 pop이 되었을 때
self가 해제되고, handlePlaybackCompletion이 실행되지 못하도록 했으나
왠지모르게 해당 뷰모델이 해제되지 않는 문제가 발생. (이후 원인을 찾아야 한다.)
SwipeMusicViewController의 viewDidAppear에서 NotificationCenter에 아까 등록된 Observer를 삭제해주도록 했다.
observer를 삭제할 때에는 observer를 등록할 때 반환한 객체가 필요하다.
따라서 그걸 audioPlayer에 등록해두고 이후에 삭제할 때 사용했다.
메인 화면 <-> 플레이리스트 상세화면 전환 시 문제가 발생했습니다. 문제는 크게 2가지였습니다.