본문 바로가기
개발일지/FLO Music App

개발일지 ) FLO - Music App 2일차 (10.18)

by 후르륵짭짭 2020. 10. 19.
728x90
반응형

 

 

일주일 동안 만들어야하는데,,,

나름 신경써서 만들려고 하니,, 생각 보다 벅차긴하다,,,

하필 중간고사 기간,,, 쩝,,,

 

구현 내용 )

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

 

UIButton not changing image

I'm trying to create a "like" button for my app. When I press the button, I want it to change to a second image, and when I press it again I went it to change back to the first image. Here is my ...

stackoverflow.com

이것을 보고 해결 가능 했다.

 

참고 사이트 : 

- AVFoundation의 AVPlayer

developer.apple.com/documentation/avfoundation/avplayer

 

Apple Developer Documentation

 

developer.apple.com

- addperiodictimeobserver

developer.apple.com/documentation/avfoundation/avplayer/1385829-addperiodictimeobserver

 

Apple Developer Documentation

 

developer.apple.com

- avPlayerItem

developer.apple.com/documentation/avfoundation/avplayeritem

 

Apple Developer Documentation

 

developer.apple.com

-  UIButton의 setImage의 이미지 변경 되지 않는 해결책

stackoverflow.com/questions/34078777/uibutton-not-changing-image

 

UIButton not changing image

I'm trying to create a "like" button for my app. When I press the button, I want it to change to a second image, and when I press it again I went it to change back to the first image. Here is my ...

stackoverflow.com

- AVPlayer 한글 정리글

caution-dev.github.io/apple-docs/2019/04/28/AVPlayer.html

 

[AVKit] AVPlayer

Content Similar Posts Comments

caution-dev.github.io

- 기타 누르는 시간 측정 

developer.apple.com/documentation/uikit/uilongpressgesturerecognizer

 

Apple Developer Documentation

 

developer.apple.com

stackoverflow.com/questions/28058082/swift-long-press-gesture-recognizer-detect-taps-and-long-press

 

Swift: Long Press Gesture Recognizer - Detect taps and Long Press

I want to wire an action such that if the gesture is a tap, it does animates an object in a particular way but if the press duration was more than .5 secs it does something else. Right now, I just...

stackoverflow.com

 

728x90
반응형

댓글