[swift] MediaPlayer 데이터 소스 관리

iOS 앱을 개발할 때, MediaPlayer 프레임워크를 사용하여 음악 또는 비디오를 재생하는 기능을 구현할 수 있습니다. MediaPlayer를 사용하여 미디어 데이터를 처리하고 표시하는 방법을 알아보겠습니다.

미디어 아이템 로딩

MediaPlayer 프레임워크를 사용하여 미디어 아이템을 로딩하려면 MPMediaLibrary 클래스를 사용해야 합니다. 이 클래스는 로컬 미디어 라이브러리에서 미디어 항목을 쿼리하고 가져오는 기능을 제공합니다. 예를 들어, 사용자의 음악 라이브러리에서 모든 음악을 검색하려면 다음과 같이 할 수 있습니다.

import MediaPlayer

let mediaItems = MPMediaQuery.songs().items

위의 코드는 MPMediaQuery를 사용하여 모든 음악을 가져와 items 속성으로 음악 아이템 배열을 반환합니다.

미디어 아이템 필터링

로딩된 미디어 아이템을 필터링하려면 MPMediaQuery 객체의 필터 속성을 사용합니다. 예를 들어, 특정 아티스트의 음악만 필터링하려면 다음과 같이 할 수 있습니다.

let query = MPMediaQuery.songs()
let predicate = MPMediaPropertyPredicate(value: "Taylor Swift", forProperty: MPMediaItemPropertyArtist)
query.addFilterPredicate(predicate)
let mediaItems = query.items

위의 코드에서 MPMediaPropertyPredicate를 사용하여 아티스트 이름을 기준으로 필터링하고, addFilterPredicate 메서드를 사용하여 쿼리에 필터를 추가합니다.

미디어 아이템 재생

로딩 및 필터링된 미디어 아이템을 재생하려면 MPMusicPlayerController 클래스를 사용합니다. 예를 들어, 특정 음악을 재생하려면 다음과 같이 할 수 있습니다.

let player = MPMusicPlayerController.systemMusicPlayer
player.setQueue(with: mediaItems)
player.play()

위의 코드에서 MPMusicPlayerController를 사용하여 미디어 아이템을 큐에 추가하고 play 메서드를 호출하여 재생합니다.

미디어 플레이어의 데이터소스 관리에 대한 기본적인 개요를 살펴보았습니다. 더 많은 세부 정보를 원하시면 MediaPlayer 프레임워크 공식 문서를 참고하시기 바랍니다.