일주일 동안 만들어야하는데,,,
나름 신경써서 만들려고 하니,, 생각 보다 벅차긴하다,,,
하필 중간고사 기간,,, 쩝,,,
구현 내용 )
1. URL로 부터 AVPlayerItem 생성
AVPlayerItem(url: url)을 이용하면 URL로 받은 데이터가 MP3와 같은 음악 파일 형식일 때
AVPlayerItem으로 변경해준다.
2. PlayerViewModel의 AVPlayer 기능 구현
AVFoundation의 하위 구조에 동영상과 음악을 재생 시킬 수 있는 AVPlayerItem 과 AVPlayer를
사용해서 음악 재생을 구현 했다.
그리고 AVPlayer와 관련된 기능은 PlayerViewModel에 모아놨다.
(AVPlayer에는 AVPlayerItem이 존재하면 AVPlayer의 AVPlayerItem에 음악을 넣어줘야한다.)
3. 재생과 중지 구현
현재 재생 상태인지 중지 상태인지에 따라
버튼의 이미지 변경을 구현 했다.
어려웠던 부분)
IOS 버전 상황에 따라 재생과 중지 버튼 이미지 변경
일단 IOS 13.0 이상 버전에서는 애플에서 재생이미지와 Configuration point를 지원하지만
그 이하 버전에서는 지원하지 않는다,,,,,
따라서 버전에 맞게 다르게 구현해줘야 하는 상황
그런데,,, IOS13 이하에서는 이미지가 변경되지 않는다는거,,,,
열심히 찾아보니, 버튼을 .normal로 해줬는데,
한번 .normal로 설정하면 그 이미지로 계속 이어진다.
따라서 .select 경우로 이미지를 다르게 해줘야한다.
func changePlayBtnPlause(){
playButton.isSelected = false
if #available(iOS 13.0, *){
let configuration = UIImage.SymbolConfiguration(pointSize: 50)
let image = UIImage(systemName: "play.fill", withConfiguration: configuration)
playButton.setImage(image, for: .normal)
}
else{
guard let image = UIImage(named: "playFill.png") else {
print("pause.png empyt")
return}
playButton.setImage(image, for: .normal)
}
}
따라서 저렇게 버튼.isSelect 를 변경해주면서 select 여부를 설정해줬다.
stackoverflow.com/questions/34078777/uibutton-not-changing-image
이것을 보고 해결 가능 했다.
참고 사이트 :
- AVFoundation의 AVPlayer
developer.apple.com/documentation/avfoundation/avplayer
- addperiodictimeobserver
developer.apple.com/documentation/avfoundation/avplayer/1385829-addperiodictimeobserver
- avPlayerItem
developer.apple.com/documentation/avfoundation/avplayeritem
- UIButton의 setImage의 이미지 변경 되지 않는 해결책
stackoverflow.com/questions/34078777/uibutton-not-changing-image
- AVPlayer 한글 정리글
caution-dev.github.io/apple-docs/2019/04/28/AVPlayer.html
- 기타 누르는 시간 측정
developer.apple.com/documentation/uikit/uilongpressgesturerecognizer
stackoverflow.com/questions/28058082/swift-long-press-gesture-recognizer-detect-taps-and-long-press
'개발일지 > FLO Music App' 카테고리의 다른 글
개발일지 ) FLO - Music App 6일차 (10.22) (4) | 2020.10.24 |
---|---|
개발일지 ) FLO - Music App 5일차 (10.21) (0) | 2020.10.22 |
개발일지 ) FLO - Music App 4 일차 (10.20) (0) | 2020.10.22 |
개발일지 ) FLO - Music App 3일차 (10.19) (0) | 2020.10.21 |
개발일지) FLO - Music App 1일차 (10.17) (0) | 2020.10.18 |
댓글