홈화면에서 곡을 클릭하면 곡 띄우기
할 일
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
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)
}
}
// 플래이 중이라면 눌렀때 퍼즈 아이콘으로 바꾸고 퍼즈누르면 플레이 아이콘으로 바꿔주는 실행문 입니다.
'iOS > Swift 어플 따라하기' 카테고리의 다른 글
[Swift]SearchBar 키보드 내려주기, ViewController와 해야 할 일 (2) | 2022.03.24 |
---|---|
[Swift] 뮤직 앱 Seeking (0) | 2022.03.23 |
[Swift] 뮤직 플레이어 코드 / 싱글 톤 객체 만들기 (2) | 2022.03.22 |
[Swift] MVVM Design Pattern (2) | 2022.03.15 |
[Swift] List 형태 어플1-3 /Segueway로 연결된 ViewController간 데이터 넘기기 (0) | 2022.03.14 |