하루에 0.01%라도 성장하자

Develop/iOS

iOS 음악 재생 앱 만들기 Part#2 - Audio Method

뚠님 2019. 5. 14. 16:20
반응형

iOS

 

 

iOS 음악 재생 앱 만들기 Part#1 에서 사용된 메소드들을 조금 더 상세하게 확인한다.

 

AVFoundation

 

Apple 플랫폼에서 사운드 및 영상 미디어의 처리, 제어, 등 광범위한 기능을 제공하는 프레임워크

 

[ 주요기능 ]

  • 미디어 재생 및 편집
  • 카메라를 이용한 녹화와 녹음
  • 시스템 사운드 제어
  • 문자의 음성화
AVAudioPlayer Class

 

파일, 메모리에 있는 사운드 데이터를 재생하는 기능을 제공

 

[ 주요기능 ]

  • 파일 또는 메모리에 있는 사운드 재생 ( 네트워크를 이용한 재생은 불가 )
  • 파일 재생 시간 길이 제한 없이 재생 가능
  • 여러개 사운드 파일 동시 재생 가능
  • 재생 속도 제어 및 스테레오 포지셔닝
  • Seek 기능 제공
  • 현재 재생 데이터 얻기 가능
  • 사운드 반복 재생 가능

[ 주요 프로퍼티 ]

type name return description
var isPlaying Bool 사운드 재생 여부
var volume Float 사운드 볼륨값. 최소 0.0 ~ 최대 1.0
var rate Float 사운드 재생 속도
var  numberOfLoops Int

사운드 재생 반복 횟수.

기본값은 0

양수의 값으로 설정시 설정값  + 1회

음수의 값으로 설정시 stop메소드 호출 전까지 무한 재생

var duration TimeInterval 사운드 총 재생시간
var currentTime TimeInterval 사운드의 현재 재생 시간
protocol AVAudioPlayerDelegate   사운드 재생완료, 중단 및 디코드 오류에 응답 가능

 

[ 주요 메소드 ]

 

/** 초기화 메소드 **/

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


/** 재생 관련 메소드 **/

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

//사운드 일시 정지
func pause();
//사운드 재생 중지
func stop();

 


 

Timer

 

어떤 언어든 Timer, Date 관련 클래스는 많이사용되고 중요하다.

 

[ 개념 ]

일정한 시간 간격이 지나면 지정된 메세지를 특정 객체로 전달하는 기능 제공

 

[ 특징 ]

  • 런 루프(run loops)에서 작동
  • 생성시 반복 여부 지정
    • 동일한 런 루프에서 특적 TimeInterval 간격으로 실행. 정지하려면 invalidate()메소드 호출 필요

[ 주요 프로퍼티 ]

type name return Description
var isValid Bool 타이머가 유효한지 여부
var fireDate Date 다음에 타이머가 실행될 시간
var timeInterval TimeInterval 타이머 실행 간격

 

반응형

'Develop > iOS' 카테고리의 다른 글

iOS 오토레이아웃 ( AutoLayout )  (0) 2019.05.14
iOS 음악 재생 앱 만들기 Part#1 - 앱 개발  (0) 2019.05.14
Swift 오류 처리 ( Error )  (0) 2019.05.13
Swift 익스텐션  (0) 2019.05.13
Swift 프로토콜 (Protocol)  (0) 2019.05.10