AVFoundation

징니·2023년 9월 14일
1

Swift

목록 보기
4/9
post-thumbnail

iOS, macOS, watchOS 및 tvOS에서 시간 기반 시청각 미디어 작업을 위한 모든 기능을 갖춘 프레임워크

image

  • UIKit 보다는 Core에 가까움
  • 비디오 관련 API와 오디오 관련 API라는 두 가지 측면
    • 사운드 파일을 재생하려면 AVAudioPlayer
    • 오디오를 녹음하려면 를 사용할 수 있습니다 AVAudioRecorder

AVAsset

시간이 지정된 시청각 미디어를 모델링하는 개체

image

생성

init(url: URL) // 지정된 URL에서 미디어를 모델링하는 Asset을 생성

로딩 시간 및 타이밍

static var duration: AVAsyncProperty<Root, CMTime> // Asset의 지속 기간을 나타내는 시간 값
static var providesPreciseDurationAndTiming: AVAsyncProperty<Root, Bool> // Asset이 정확한 기간과 타이밍을 제공하는지 여부를 나타내는 Bool
static var minimumTimeOffsetFromLive: AVAsyncProperty<Root, CMTime> // 재생이 최신 라이브 스트림 콘텐츠를 얼마나 가깝게 따라가는지 나타내는 시간 값

트랙 로드 중

static var tracks: AVAsyncProperty<Root, [AVAssetTrack]> // Asset에 포함된 미디어 트랙
func loadTrack(withTrackID: CMPersistentTrackID, completionHandler: (AVAssetTrack?, Error?) -> Void) // 지정된 식별자가 포함된 트랙을 로드
func loadTracks(withMediaType: AVMediaType, completionHandler: ([AVAssetTrack]?, Error?) -> Void) // 지정된 유형의 미디어가 포함된 트랙을 로드
func loadTracks(withMediaCharacteristic: AVMediaCharacteristic, completionHandler: ([AVAssetTrack]?, Error?) -> Void) // 지정된 특성의 미디어가 포함된 트랙을 로드
func findUnusedTrackID(completionHandler: (CMPersistentTrackID, Error?) -> Void) // Asset의 다른 트랙에서 사용하지 않는 식별자를 로드

트랙 그룹 로드 중

static var trackGroups: AVAsyncProperty<Root, [AVAssetTrackGroup]> // 트랙은 Asset에 포함된 그룹을 그룹화

메타데이터 로드

static var metadata: AVAsyncProperty<Root, [AVMetadataItem]> // 모든 메타데이터 식별자에 대해 Asset에 포함된 메타데이터 항목
static var commonMetadata: AVAsyncProperty<Root, [AVMetadataItem]> // 공통 메타데이터 식별자에 대해 Asset에 포함된 메타데이터 항목
static var availableMetadataFormats: AVAsyncProperty<Root, [AVMetadataFormat]> // Asset에 포함된 메타데이터의 형식
func loadMetadata(for: AVMetadataFormat, completionHandler: ([AVMetadataItem]?, Error?) -> Void) // 지정된 형식에 대해 Asset에 포함된 메타데이터 항목의 배열을 로드
static var creationDate: AVAsyncProperty<Root, AVMetadataItem?> // Asset 생성 날짜를 나타내는 메타데이터 항목
static var lyrics: AVAsyncProperty<Root, String?> // 현재 로케일에 적합한 언어로 된 Asset 가사

적재 적합성

static var isPlayable: AVAsyncProperty<Root, Bool> // Asset에 재생 가능한 콘텐츠가 포함되어 있는지 여부를 나타내는 Bool
static var isExportable: AVAsyncProperty<Root, Bool> // 내보내기 세션을 사용하여 Asset을 내보낼 수 있는지 여부를 나타내는 Bool
static var isReadable: AVAsyncProperty<Root, Bool> // Asset 리더를 사용하여 자산의 미디어 데이터를 추출할 수 있는지 여부를 나타내는 Bool
static var isComposable: AVAsyncProperty<Root, Bool> // 미디어 구성에서 Asset을 사용할 수 있는지 여부를 나타내는 Bool
static var isCompatibleWithAirPlayVideo: AVAsyncProperty<Root, Bool> // Asset이 AirPlay Video와 호환되는지 여부를 나타내는 Bool
static var isCompatibleWithSavedPhotosAlbum: AVAsyncProperty<Root, Bool> // 저장된 사진 앨범에 Asset을 쓸 수 있는지 여부를 나타내는 Bool

자산 기본 설정 로드 중

static var preferredRate: AVAsyncProperty<Root, Float> // 미디어 재생에 대한 Asset의 속도 기본 설정
static var preferredVolume: AVAsyncProperty<Root, Float> // 가청 미디어 재생을 위한 Asset의 볼륨 기본 설정
static var preferredTransform: AVAsyncProperty<Root, CGAffineTransform> // 프레젠테이션 또는 처리 중에 시각적 콘텐츠에 적용할 Asset의 변환 기본 설정
static var preferredDisplayCriteria: AVAsyncProperty<Root, AVDisplayCriteria> // 콘텐츠의 최적 재생을 위한 Asset의 표시 모드 기본 설정
class AVDisplayCriteria // tvOS에서 디스플레이 모드 선택을 안내하기 위해 시스템이 사용하는 개체

미디어 선택 로드

static var allMediaSelections: AVAsyncProperty<Root, [AVMediaSelection]> // Asset에 사용 가능한 미디어 선택
static var preferredMediaSelection: AVAsyncProperty<Root, AVMediaSelection> // Asset의 미디어 선택 그룹에 대한 기본 미디어 선택
static var availableMediaCharacteristicsWithMediaSelectionOptions: AVAsyncProperty<Root, [AVMediaCharacteristic]> // 미디어 선택 옵션을 제공하는 미디어 특성
func loadMediaSelectionGroup(for: AVMediaCharacteristic, completionHandler: (AVMediaSelectionGroup?, Error?) -> Void) // 지정된 미디어 특성을 가진 하나 이상의 옵션이 포함된 미디어 선택 그룹을 로드

챕터 메타데이터 로드 중

static var availableChapterLocales: AVAsyncProperty<Root, [Locale]> // Asset장 메타데이터의 로케일
func loadChapterMetadataGroups(withTitleLocale: Locale, containingItemsWithCommonKeys: [AVMetadataKey]) -> [AVTimedMetadataGroup] // 지정된 제목 로캘과 공통 키가 포함된 챕터 메타데이터를 로드
func loadChapterMetadataGroups(bestMatchingPreferredLanguages: [String], completionHandler: ([AVTimedMetadataGroup]?, Error?) -> Void) // 기본 언어 목록과 가장 일치하는 로케일을 사용하여 장 메타데이터를 로드

콘텐츠 보호 로드 중

static var hasProtectedContent: AVAsyncProperty<Root, Bool> // Asset에 보호된 콘텐츠가 포함되어 있는지 여부를 나타내는 Bool

조각 지원 로드 중

static var canContainFragments: AVAsyncProperty<Root, Bool> // 조각별로 자산을 확장할 수 있는지 여부를 나타내는 Bool
static var containsFragments: AVAsyncProperty<Root, Bool> // 하나 이상의 영화 조각이 자산을 확장하는지 여부를 나타내는 Bool
static var overallDurationHint: AVAsyncProperty<Root, CMTime> // 현재 존재하거나 미래에 존재할 수 있는 조각의 총 지속 시간에 대한 힌트

속성 로드 취소 중

func cancelLoading() // 속성 값을 비동기적으로 로드하기 위해 보류 중인 모든 요청을 취소

참조 제한 검색

var referenceRestrictions: AVAssetReferenceRestrictions // Asset이 외부 미디어에 대한 참조를 해결하는 방법에 적용하는 제한 사항
struct AVAssetReferenceRestrictions // 외부 미디어 데이터에 대한 참조를 확인할 때 사용하는 제한 사항

Playback

Capture

Editing

Audio

Errors

profile
iOS 개발자입니다

1개의 댓글

comment-user-thumbnail
2023년 9월 23일

음악 재생도 AVFoundation을 임포트하면 되겠군요!
감사합니다!

답글 달기