티스토리 뷰

일반적으로 Assets Catalog에서는 App Icon, Color, Image 등을 관리해 왔습니다. 그리고 여기에 추가된 image와 color의 instance를 만들 때는 각각 `UIImage(named:)`와 `UIColor(named:)` 생성자에 asset에서 지정한 이름을 전달하여 생성할 수 있었습니다.

let image = UIImage(named: "image")
let color = UIColor(named: "color")

이 글에서는 Image와 color 뿐만 아니라 audio, video 파일들도 Asset Catalog에서 관리하는 방법을 기록합니다.


Asset Catalog에는 media(audio, video) file을 추가하려면 `.xcassets`에서 `New Data Set`을 선택하여 data asset을 생성하고, media file을 끌어다 놓습니다.

이렇게 추가한 data set은 `NSDataAsset`을 통해 가져올 수 있습니다. `NSDataAsset`은 Asset Catalog에 있는 data entries의 content를 나타내는 객체입니다. `NSDataAsset`의 `data` property를 통해 실제 content의 `Data`를 가져옵니다.

`NSDataAsset`은 다음과 같이 사용합니다.

let player: AVAudioPlayer?

if let soundAsset = NSDataAsset(name: "Sound") {
    do {
        player = try AVAudioPlayer(data: soundAsset.data, fileTypeHint: "caf")
        player?.play()
    } catch {
        print(error.localizedDescription)
    }
}

 

참고 : Accessing Audio Files in Asset Catalog

 

'iOS' 카테고리의 다른 글

Asset Catalog에서 audio file 관리하기  (0) 2020.09.03
RxSwift를 시작하기 전에  (2) 2020.08.11
Frame과 Bounds의 차이  (0) 2020.08.07
GCD: Grand Central Dispatch  (0) 2020.07.27
Serial/Concurrent와 Sync/Async 이해하기(feat. DispatchQueue)  (0) 2020.07.26
Application Life Cycle  (0) 2020.07.15
댓글
댓글쓰기 폼