ProgressTimer에서 TImer.scheduledTimer 함수를 사용해서 0.1초 간격으로 타이머를 생성하도록 구현한다.
버튼을 누를시에 Timer.scheduledTimer 가 호출된다.
timeInterval = 얼마의 간격의 기준으로 동작 여기서는 0.1초이다.
target = Timer을 동작시킬대상, 여기서는 self는 뷰컨을 나타낸다. timer가 뷰컨 안에 있기때문이다.
selector = timeInterval 에서 정해준 시간이 지날때마다 호출되는 함수 여기서는 timePlayerSelector
위의 함수에서 timeplayerSelector는 updatePlayTime이라는 함수를 부른다.
이를 살펴보면 lblCurrentTime.text 에 audioPlayer.currentTime을 String으로 변환해서 넣어준다. 또한 ProgressPlay.progress에 전체 재생시간에서 currentTime의 퍼센트를 넣어준다.
userInfo = 타이머 동작시 전달할 객체 지정
repeats = 타이머 반복 여부
파일을 형성하는데 있어서 중요한 것은 어디에 저장할 것인지이다!! 이때 documentDirectory 안에 저장이 될 것이다. 그렇다면 이 다큐먼트디렉토리가 어디있을지 알아야 한다. 그렇다면 처음할일은 DocumentDirectory URL을 얻는 것이다.
let documentDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
이것이 방법이다. FileManager.default 라는 싱글톤 인스턴스의 urls 메소드의 첫번째요소를 빼오는 듯한대요?!
urls 메소드는 요청된 도메인에서 지정된 공통 디렉토리에 대한 url의 배열을 뽑아오는 것이다.
뭐 이렇게 하면 도큐먼트디렉토리의 url을 알게된것이다.
그렇다면 파일이름을 정하는 것은
audioFile = documentDirectory.appendingPathComponent("recordFile.m4a")
recordFile.m4a 파일을 만들고 이를 audioFile에 넣는다.
이게 ViewDidLoad 에 들어가니 selectAudioFile에서는 녹음모드 맞는지 아닌지 알고, 녹음모드라면, 파일을 저장할 도큐먼트디렉토리의 url을 알고, 그 안에 record.m4a 파일을 만들고, 이것을 AVAudioPlayer 인스턴스인 audioPlayer 에 넣는다!!
[iOS] UIImagePickerController (0) | 2021.02.14 |
---|---|
[iOS] 음악재생, 녹음하는앱(5) - 녹음하기 (0) | 2021.02.11 |
[iOS] 음악재생, 녹음하는앱(3) - 재생시간 (0) | 2021.02.11 |
[iOS] 음악재생, 녹음하는앱(2) .delegate = self (0) | 2021.02.10 |
[iOS] 음악재생, 녹음하는 앱(1) (0) | 2021.02.10 |
댓글 영역