[Swift] 뮤직 플레이어, 홈화면에서 플레이어 화면 띄우기
홈화면에서 곡을 클릭하면 곡 띄우기
할 일
1. 플레이어뷰컨트롤러 스토리보드 가져오기
2. 뷰컨트롤러를 찾아서 PlayerVC에 PlayerViewController로 캐스팅
3. 프리젠트 (헤더뷰가 있다면 헤더뷰에도 똑같이 이행)
4. 플레이어뷰 곡정보 표시 및 재생
1. 플레이어 뷰 컨트롤러 스토리 보드 가져오기
let playerStoryboard = UIStoryboard.init(name: "Player", bundle: nil)
// 스토리보드 이름 Player에서 UIStoryboard를 가져옵니다.
2. SimplePlayer를 스토리 보드
guard let playerVC = playerStoryboard.instantiateViewController(withIdentifier: "PlayerViewController") as? PlayerViewController else { return }
//player뷰컨으로 캐스팅
// instantiateViewController는 여러가지 뷰컨트롤러들중에 가져올 뷰컨트롤러를 구분하기 위한 메서드입니다.
let item = trackManager.tracks[indexPath.item]
// 트랙매니저의 인덱스 패스 아이템에 있는 인댁스에 해당하는 아이템을 가져옵니다.
playerVC.simplePlayer.replaceCurrentItem(with: item)
//playerVC에 simpleplayer로 곡을 갈아끼우기
// simplePlayer는 이전 시간에 만든 싱글톤 객체
https://accompani-i.tistory.com/141
[Swift] 뮤직 플레이어 코드 / 싱글 톤 객체 만들기
싱글톤 객체 만들기 싱글 톤 객체는 플레이어를 매번 생성하는 것이 아니고 하나만 만들고 객체로 불러서 사용 하는 것입니다. static let shared = SimplePlayer() let simplePlayer = SimplePlayer.shared..
accompani-i.tistory.com
3. 프리젠트 (헤더뷰가 있다면 헤더뷰에도 똑같이 이행)
present(playerVC, animated: true, completion: nil)
4. 플레이어뷰 곡정보 표시 및 재생
extension PlayerViewController {
func updateTrackInfo() {
guard let track = simplePlayer.currentItem?.convertToTrack() else { return }
thumbnailImageView.image = track.artwork
titleLabel.text = track.title
artistLabel.text = track.artist
//받은 곡을 가지고 플레이어뷰컨트롤에 필요한 정보 업데이트를 해줍니다.
func updatePlayButton() {
if simplePlayer.isPlaying {
let configuration = UIImage.SymbolConfiguration(pointSize: 40)
let image = UIImage(systemName: "pause.fill", withConfiguration: configuration)
playControlButton.setImage(image, for: .normal)
} else {
let configuration = UIImage.SymbolConfiguration(pointSize: 40)
let image = UIImage(systemName: "play.fill", withConfiguration: configuration)
playControlButton.setImage(image, for: .normal)
}
}
// 플래이 중이라면 눌렀때 퍼즈 아이콘으로 바꾸고 퍼즈누르면 플레이 아이콘으로 바꿔주는 실행문 입니다.