상세 컨텐츠

본문 제목

[iOS] 음악재생, 녹음하는 앱(1)

SWIFT

by 옹홍 2021. 2. 10. 18:30

본문

이글은 zeddios.tistory.com/269의 글을 참고하면서 공부한 글입니다.

Do it 책을 공부하면서 음악재생하고, 녹음하는 앱을 만드는 과제가 있다.

여기서 필요한것은 

import AVFoundation

그리고 클래스 안에 

    var audioPlayer: AVAudioPlayer!

AVAudioPlayer 인스턴스 변수를 만들어줘야한다. 파일이나 메모리에 존재하는 오디오 데이터를 재생하는 역할을 한다. 

음악을 가져올때는 Bundle.main.url()을 사용한다.

audioFile = Bundle.main.url(forResource: "Sicilian_Breeze", withExtension: "mp3")

만약 audioFile : URL? 라면 

이때 옵셔널 바인딩을 하기 위해서는 

if let audioFile = audioFile{}

을 해주어야지만 

책은 audioFile : URL! 이라서 옵셔널 바인딩을 안해줘도 되었다.

책에서 만든 initPlay()에서

do catch 문에는 

audioPlayer =  try AVAudioPlayer(contensOf: audioFile)이라는 것이 존재한다. 

audioFile이라는 파일 주소를  audioPlayer라는 AVAudioPlayer 인스턴스에 넘겨준다.

그뒤에

audioPlayer.prepareToPlay()로 버퍼를 미리 로드하여 재생할 오디오 프로그램을 준비한다.

do catch문에서

catch let error as NSError는 오류가 떴을시, catch 구분이 실행된다. 

그 뒤에 버튼을 눌렀을 시 audioPlayer.play()이 발생한다.

play()는 비동기적으로 사운드를 재생시킨다. 만약에 오디오플레이어가 준비되어있지않고, 이 메소드를 실행시키면 prepareToPlay()가 호출된다.

관련글 더보기

댓글 영역