728x90
728x90
SMALL
결과보기
- Github
728x90
- AVFoundation
AVPlayer : 미디어를 컨트롤하는 플레이어
play() - 미디어 재생
pause() - 미디어 일시정지
seek() - 특정 시간으로 이동
replaceCurrentItem() - 현재 설정된 미디어 교체
addPeridicTimeObserve() - 특정 시간 마다 미디어 재생 시간 관찰
AVPlayerItem : 각각의 미디어 개체
AVMetadataItem : 각 미디어의 메타데이터
commonKey로 확인하여 각 정보를 얻어올 수 있다
▶ 키 정보
- title
- artist
- author
- albumName
- artwork
- creaitonDate
등등 존재
- 코드
Custom Cell
class MainViewCell : UICollectionViewCell {
@IBOutlet weak var imgView : UIImageView!
@IBOutlet weak var title : UILabel!
@IBOutlet weak var singer : UILabel!
override var isSelected: Bool {
didSet {
if isSelected {
self.layer.backgroundColor = UIColor.gray.cgColor
}
else {
self.layer.backgroundColor = nil
}
}
}
func updateData(_ data: MusicData) {
imgView.image = data.img
title.text = data.title
singer.text = data.singer
}
}
Custom HeaderView
class MainHeaderView : UICollectionReusableView {
@IBOutlet weak var imgView : UIImageView!
@IBOutlet weak var labelMusic : UILabel!
var myData : MusicData?
var myHandler : ((MusicData) -> Void)?
override func awakeFromNib() {
super.awakeFromNib()
imgView.layer.cornerRadius = 5
}
func updateData(_ data: MusicData, handler: @escaping (MusicData) -> Void)
{
self.myData = data
guard let curData = myData else {
return
}
imgView.image = curData.img
labelMusic.text = "\(curData.singer) - \(curData.title)"
self.myHandler = handler
}
@IBAction func clickHeader(_ sender: UIButton) {
guard let curData = myData else {
return
}
myHandler?(curData)
}
}
728x90
728x90
LIST
'EXPERIENCE > iOS' 카테고리의 다른 글
[Xcode/iOS] Swift CocoaPods AppAuth ERROR 해결 방법 (0) | 2022.12.23 |
---|---|
[Xcode/iOS] Swift Unable to Install ERROR 해결 방법 (0) | 2022.12.23 |
[Xcode/iOS] Swift Cycle in dependencies between targets ERROR 해결 (0) | 2022.12.22 |
[Xcode/iOS] Swift TableView 사용해보기 (0) | 2022.12.22 |
[Xcode/MacOS] 내가 보려고 만든 Xcode 단축키 모음 (0) | 2022.06.21 |