오디오를 실제로 녹음하거나 재생하고 컨트롤하는 역할을 하는
AVAudioRecorder와AVAudioPlayer가 있다.
AVPlayer는 플레이어의 전송 동작을 제어하기 위한 인터페이스를 제공하는 객체이다class AVPlayer : NSObject
AVPlayer는 미디어 Assets의 재생 및 타이밍을 관리하는 컨트롤 객체이다. AVPlayer의 로컬 및 원격 파일 기반(MP3 오디오 파일, QuickTime 영화)와 HTTP 라이브 스트리밍을 사용하여 제공되는 시청각 미디어를 재생하려면 인스턴스를 사용합니다.
AVPlayer는 URL로 오디오 파일 및 영상 파일을 재생할 수 있으며 단 AVPlayer 자체에서 영상을 재생하는 기능은 제공하지 않기 떄문에 AVKit 혹은 AVPlayerLayer를 함께 사용하여 영상을 재생할 수 있다.
파일이나 버퍼에서 오디오를 재생하는 객체를 말합니다.
class AVAudioPlayer
AVAudioPlayer객체를 통해 시간제한 없이(Any duration) 파일(또는 버퍼)로 부터 음성파일 재생 가능하며 볼륨, 속도, 스테레오 포지셔닝(Panning), 반복 재생 기능 들을 조절 가능하다.
또한 현재 재생 정보를 제공하며(access playback-level metering data) 동시에 여러 플레이어를 통해 여러개의 음성 재생이 가능하다
func prepareToPlay() -> Bool
True 일경우 시스템이 플레이어 준비 상태가 된 경우이며 False일 경우 플레이어 준비 상태가 안 된경우이다.func record() -> Bool
/// 특정 시간에 시작하여 녹음한다.
func record(atTime: TimeInterval) → Bool
/// 특정 시간에 시작하여 특정 기간 까지 녹음한다.
func record(atTime: TimeInterval, forDuration: TimeInterval) → Bool
func pause()
stop() 메서드과 달리 재생을 일시 중지 해도 오디오는 멈춘 지점에서 재생을 다시 재개 할 수 있다.func stop()
prepareToPlay메서드를 다시 실행하여 다시 오디오 재생을 시작해야합니다.func deleteRecording() -> Bool
True 로 반환할경우 시스템이 파일을 삭제한 경우이며, False로 반환한 경우에는 삭제하지 않은 경우 입니다.var isRecording: Bool { get }
var currentTime: TimeInterval { get set }
currentTime 속성은 play()메서드를 호출할때 재생이 시작되는 오프셋 입니다.currentTime속성을 사용하여 오디오 데이터에서 특정 시간을 검색하거나 빨리감기 및 녹음을 시작할 수 있습니다.var deviceCurrentTime: TimeInterval { get set }
오디오 녹음 이벤트와 인코딩 오류에 대응하는 방법을 정의하는 프로토콜입니다.
protocol AVAudioRecorderDelegate : NSObjectProtocol, Sendable
optional func audioRecorderEncodeErrorDidOccur( _ recorder: AVAudioRecorder, error: (any Error)?)
optional func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, successfully flag: Bool)
func peakPower(forChannel channelNumber: Int) -> Float
func updateMeters() -> Void
func averagePower(forChannel channelNumber: Int) -> Float