전체 글 (51) 썸네일형 리스트형 [ISSUE] 저전력 모드 화면 꺼짐 방지 현재 프로젝트에서 3분에서 5분 사이의 Audio 파일이 재생되는 ViewController가 있었다. 그리고 그 VC는 Audio의 재생이 끝날때까지 특정 animation을 동작하는 프로세스를 가지고 있어 무엇보다 시청각이 주 컨텐츠인 VC였다. 하지만 사용자가 디바이스의 설정에서 저전력 모드를 활성화 했을때 일정 시간이 지나면 앱의 화면이 잠겨 버리는 issue가 발생했다. 해당 VC만큼은 저전력 모드 활성화로 인한 화면 자동 잠금이 이루어지지 않아야 한다는 요청이 있었다. 그리하여 idleTimerDisabled이라는 Bool 타입의 속성을 컨트롤하여 issue를 해결했고 그 과정을 포스팅하겠다. 일단 Apple 공식 문서의 설명을 참고하자면 idleTimerDisabled이라는 속성의 기본값은 .. [Swift_Grammar] Initialization 초기화란 새로운 인스턴스를 사용할 준비를 하기 위해 저장 프로퍼티의 초깃값을 설정하는 등의 일을 말한다. 초기화(Initializer)는 init 키워드를 사용하여 정의하며 하단 예제 코드와 같은 모양을 가지고 있다. init class SomeClass { init() { ... } } struct SomeStruct { init() { ... } } enum SomeEnum { case someCase init() { self = .someCase } } 구조체와 클래스의 인스턴스는 처음 생성할 때 Optional한 프로퍼티를 제외한 모든 저장 프로퍼티에 초깃값을 지정해주어야 한다. 만약 값을 꼭 가지고 있지 않아도 되는 속성이 있다면 Optional 처리를 해줘서 기본값을 nil로 설정해 줄 수 있.. [ISSUE] AVFoundation ( 3 ) - AVAudioEngine 이번에는 audio의 rate와 pitch를 control 하기 위해 AVAudioEngine을 사용하여 Player를 구현하는 과정에서 생긴 issue에 대해서 포스팅하겠다. AVFoundation의 강력한 클래스 중 하나인 AVAudioEngine은 한 개체의 출력이 다른 개체의 입력이 되도록 오디오 처리 개체를 체인으로 연결하는 것이다. 시작 부분에 오디오를 공급하고 중간에 처리를 적용한 다음 오디오를 출력으로 재생하여 많은 노력없이 실시간으로 오디오 조작을 수행 할 수 있다. 하지만 'local에 위치한 audio파일' 이라는 제한이 있었다. 어쩔수 없이 해당 URL에 있는 audio 파일을 stream이 아닌 디바이스에 다운로드 받는 프로세스로 변경을 하였다. ( 앱에서 제공하는 노래의 개수는 .. 이전 1 ··· 3 4 5 6 7 8 9 ··· 17 다음 목록 더보기