iOS - AVAudioPlayer

ian·2021년 12월 25일
0

iOS 공부

목록 보기
5/9


노래를 틀어주는 어플을 만드려면 어떻게 해야될까요 ?
기본적으로 우리가 알아야 할 게 있습니다 !

바로 AVFoundation 프레임워크입니다 !
이 프레임 워크는 사운드, 영상 미디어의 처리, 제어, 등 광범위한 기능을 제공합니다 👍🏻

그 중 오늘 우리는 AVAudioPlayer 클래스에 대해 알아볼게요 !


AVAudioPlayer은 파일 또는 메모리에 있는 사운드 데이터를 재생하는 기능을 갖고 있습니다.

주된 기능

AVAudioPlayer 가 주로 하는 기능이 있어요.

  • 파일 또는 메모리에 있는 사운드를 재생합니다.
  • 파일 재생 시간 길이의 제한없이 사운드를 재생합니다.
  • 여러 개의 사운드 파일을 동시 재생할 수 있습니다.
  • 사운드의 재생 속도 제어합니다.
  • 앞으로 감기, 뒤로 감기를 할 수 있습니다.
  • 현재 재생되고 있는 음악의 정보를 얻어올 수 있습니다.
  • 반복재생할 수 있습니다.

를 할 수 있어요 !

주요 프로퍼티

AVAudioPlayer 의 주요 프로퍼티는

  • var isPlaying: Bool: 사운드가 현재 재생되고 있는지 아닌지 여부를 확인합니다.
  • var volume: Float: 사운드의 볼륨값, 최소 0.0 ~ 최대 1.0로 조정할 수 있습니다.
  • var rate: Float: 사운드의 재생 속도를 담당합니다.
  • var numberOfLoops: Int: 사운드 재생 반복 횟수를 나타냅니다.
    - 기본값은 0으로 사운드 1회 재생 후 자동 종료
    - 양수값으로 설정시 설정값+1회 재생(ex. 1로 설정시 2회 재생 후 종료)
    - 음수값으로 설정시 stop 메서드가 호출 될때까지 무한 재생
  • var dutation: TimeInterval: 사운드의 총 재생 시간(초 단위)
  • var currentTime: TimeInterval: 사운드의 현재 재생 시각(초 단위)
  • protocol AVAudioPlayerDelegate: 사운드 재생 완료, 재생 중단 및 디코딩 오류에 응답할 수 있는 프로토콜

이 있다고 알아두면 좋을 것 같네요 !

AVAudioPlayer 초기화 메서드

AVAudioPlayer 의 메스드 방법은 밑과 같은 방식으로 할 수 있어요 !

// 특정 위치에 있는 사운드 파일로 초기화 
func init(contentOf: URL)
// 메모리에 올라와있는 데이터를 이용해 초기화
func init(data: Data)

AVAudioPlayer 재생관련 메서드

AVAudioPlayer 에서 주로 사용되는 메서드는 밑과 같이 되어있어요 !

// 사운드 재생
func play()
// 특정 시점에서 사운드 재생
func play(atTime: TimeInterval)

// 사운드 일시 정지
func pause()
// 사운드 재생 정지 
func stop()
func playAudio(_ audio: AudioModel.Audio) {
    if let index = audios.firstIndex(matching: audio) {
        let data = audios[index].audio 
        player = try? AVAudioPlayer(data: data)
        player?.play() 
    } 
}

출처: 네이버 부스트코스

profile
디자인씽킹을 하며 iOS 를 공부합니다

0개의 댓글