MediaPlayer

class MediaPlayer

미디어 플레이어 클래스입니다. 활성화된 미디어 플레이어에 접근하는 방법은 player를 참고하세요.


속성

allowsBackgroundPlayback

var allowsBackgroundPlayback: Bool { get set }
타입설명설정기본값
Bool백그라운드 재생을 허용할 지 여부가능false

백그라운드 재생을 허용할 지 여부를 나타내는 속성입니다.

allowsCellularAccess

var allowsCellularAccess: Bool { get set }
타입설명설정기본값
Bool동영상 재생 시, 셀룰러 데이터 사용 여부가능true

동영상을 재생(스트리밍)할 때, 셀룰러 데이터를 사용할 지 여부를 나타내는 속성입니다.

allowsPictureInPicturePlayback

var allowsPictureInPicturePlayback: Bool { get set }
타입설명설정기본값
Bool화면 속 화면 모드를 허용할 지 여부가능true

화면 속 화면 모드를 허용할 지 여부를 나타내는 속성입니다.

audioTracks

var audioTracks: [AudioTrack] { get }
타입설명설정기본값
[AudioTrack]오디오 트랙 리스트불가능[]

오디오 트랙 리스트를 반환하는 속성입니다.

참고: AudioTrack

autoplay

var autoplay: Bool { get set }
타입설명설정기본값
Bool미디어가 로드되었을 때, 즉 미디어가 준비가 된 즉시 재생할 것인지 결정하는 값가능true

미디어가 로드되었을 때, 즉시 재생이 시작되어야 하는지를 나타내는 속성입니다. true면 자동 재생합니다.

buffered

var buffered: [TimeRange] { get }
타입설명설정
[TimeRange]현재 버퍼에 담고 있는 미디어 리소스의 범위 데이터불가능

버퍼에 있는 미디어 리소스의 범위를 반환합니다.

참고: TimeRange

canStartPictureInPictureAutomatically

var canStartPictureInPictureAutomatically: Bool { get set }
타입설명설정기본값
Bool백그라운드에서 화면 속 화면 모드를 자동으로 시작할 지 여부가능true

앱이 백그라운드에 있을 때, 화면 속 화면 모드를 자동으로 시작할 수 있는지 여부를 의미하는 속성입니다.

currentMediaItem

var currentMediaItem: MediaItem? { get }
타입설명설정
MediaItem?현재 재생 중인 미디어 아이템불가능

현재 재생 중인 미디어 아이템을 반환하는 속성입니다.

참고: MediaItem

currentMediaItemIndex

var currentMediaItemIndex: Int { get }
타입설명설정
Int현재 재생 중인 미디어 아이템의 index불가능

현재 재생 중인 미디어 아이템의 index를 반환하는 속성입니다.

currentSrc

var currentSrc: URL? { get }
타입설명설정
URL?현재 선택된 미디어 아이템의 URL불가능

미디어 리소스의 uri를 반환하는 속성입니다.

currentTime

var currentTime: Duration { get set }
타입설명설정
Duration설정 시, 재생하고 싶은 특정 위치 (seekTo와 같은 동작)
반환 시, 현재 재생 시점
가능

현재 재생 위치를 Duration 단위로 나타내는 속성입니다.

defaultMuted

var defaultMuted: Bool { get set }
타입설명설정기본값
Bool음소거 기본 설정 상태가능false

오디오의 음소거 기본 설정을 나타내는 속성입니다.

defaultPlaybackRate

var defaultPlaybackRate: Float { get set }
타입설명설정범위기본값
Float미디어의 기본 재생 속도가능0.1~4.01.0

미디어의 기본 재생 속도를 나타내는 속성입니다.

duration

var duration: Duration { get }
타입설명설정
Duration현재 미디어의 전체 길이불가능

현재 미디어 길이를 반환하는 속성입니다. 재생 가능한 미디어가 없을 경우 0에 해당하는 Duration을 반환합니다.

ended

var ended: Bool { get }
타입설명설정
Bool재생 목록에서 마지막 미디어의 재생 완료 여부를 반환불가능

미디어 재생 완료 여부를 반환하는 속성입니다.

error

var error: Error? { get }
타입설명설정
Error?에러를 반환불가능

최근 발생한 에러를 반환하는 속성입니다.

isFlippedHorizontally

var isFlippedHorizontally: Bool { get } 
타입설명설정기본값
Bool화면이 좌우 반전 상태인지 여부불가능false

현재 재생 중인 미디어 화면이 좌우 반전 상태인지 여부를 반환하는 속성입니다

isFlippedVerticaly

var isFlippedVerticaly: Bool { get }
타입설명설정기본값
Bool화면이 상하 반전 상태인지 여부불가능false

현재 재생 중인 미디어 화면이 상하 반전 상태인지 여부를 반환하는 속성입니다.

참고: flipVertical()

isPictureInPictureActive

var isPictureInPictureActive: Bool { get }
타입설명설정기본값
Bool화면 속 화면 모드인지 여부불가능false

현재 재생되는 미디어가 화면 속 화면 모드인지를 반환하는 속성입니다.

isPictureInPicturePossible

var isPictureInPicturePossible: Bool { get }
타입설명설정기본값
Bool현재 화면 속 화면 모드로 전환할 수 있는지 여부불가능false

미디어가 화면 속 모드로 전환할 수 있는지 여부를 반환하는 속성입니다.

isSeekable

var isSeekable: Bool { get }
타입설명설정기본값
Bool미디어 아이템에서 위치를 이동할 수 있는지 여부불가능false

미디어에서 seek을 사용할 수 있는지 여부를 반환하는 속성입니다. 미디어의 길이가 파악이 될 경우 true를 반환합니다.

isSubtitlesVisible

var isSubtitlesVisible: Bool { get set }
타입설명설정기본값
Bool화면에 자막 표시 여부가능true

화면에 자막 표시 여부. true나 false값을 넣어서 자막을 켜고 끌 수 있습니다.

loop

var loop: Bool { get set }
타입설명설정기본값
Bool미디어 반복 재생 여부를 결정하는 값가능false

미디어 재생이 끝났을 때 다시 처음부터 재생할 지 여부를 나타내는 속성입니다.

maxSeekToPreviousPosition

var maxSeekToPreviousPosition: Duration { get set }
타입설명설정기본값
Duration하단 인터페이스의 이전 버튼을 클릭하였을 때, 이전 미디어로 갈 것인지 현재 미디어의 맨 앞으로 갈 것인지에 대한 기준 값. 이 값보다 작으면 이전 미디어로 이동하고, 그렇지 않으면 현재 미디어의 맨 앞으로 이동합니다.가능3초

이전 버튼을 눌렀을 때, 이전 미디어로 갈 수 있는 최대 허용 위치를 나타내는 속성입니다. 메서드 seekToPrevious()에서 사용됩니다.

mediaItems

var mediaItems: [MediaItem] { get set }
타입설명설정기본값
[MediaItem]현재 재생 목록에 있는 미디어 아이템들가능[]

미디어 아이템들의 목록을 나타내는 속성입니다.

참고: MediaItem

muted

var muted: Bool { get set }
타입설명설정기본값
Bool오디오 음소거 여부가능false

음소거 여부를 나타내는 속성입니다. 음소거면 true, 아니면 false입니다.

paused

var paused: Bool { get }
타입설명설정
Bool미디어 일시 정지 여부불가능

미디어가 일시 정지 상태인지 반환하는 속성입니다.

playbackRate

var playbackRate: Float { get set }
타입설명설정범위기본값
Float재생 속도가능0.1~4.01.0

미디어의 재생 속도를 나타내는 속성입니다. 정상 속도는 1.0이고, 1보다 작을 때는 느리게, 1보다 클 때는 빠르게 재생합니다. 이 때, 오디오 피치 유지 여부는 preservesPitch의 값으로 제어할 수 있습니다.

playbackState

var playbackState: MediaPlayer.PlaybackState { get }
타입설명설정
MediaPlayer.PlaybackState미디어의 현재 상태를 나타냅니다.불가능

미디어의 현재 상태를 반환하는 속성입니다.

preservesPitch

var preservesPitch: Bool { get set }
타입설명설정기본값
Bool오디오 피치 유지 여부가능true

재생 속도에 따른 오디오 피치 유지 여부를 나타내는 속성입니다. 값이 true면 재생 속도가 변해도 오디오 피치는 변함 없으며, false일 경우 재생 속도에 따라 오디오 피치가 변합니다.

repeatMode

var repeatMode: MediaPlayer.RepeatMode { get set }
타입설명설정기본값
MediaPlayer.RepeatMode오디오 반복 모드 상태가능none

반복 모드를 나타내는 속성입니다.

repeatRange

var repeatRange: MediaPlayer.RepeatRange? { get set }
타입설명설정기본값
MediaPlayer.RepeatRange?반복 구간 범위가능nil

반복 구간 범위를 나타내는 속성입니다.

scalingMode

var scalingMode: ScalingMode { get set }
타입설명설정
ScalingMode화면 스케일링 상태가능

현대 미디어 화면의 스케일링 상태를 나타내는 속성입니다.

참고: ScalingMode

seekable

var seekable: [TimeRange] { get }
타입설명설정
[TimeRange]미디어 내 탐색 가능한 구간 범위불가능

미디어 내에서 탐색(seek)이 가능한 구간 범위를 반환하는 속성입니다.

참고: TimeRange

seekBackIncrement

var seekBackIncrement: Duration { get set }
타입설명설정기본값
Duration현재 위치에서 전으로 이동하는 시간의 크기가능10초

seekBack()을 호출하여 이동할 때, 현재 위치에서 전으로 이동하는 시간 정도를 나타내는 속성입니다. 왼쪽 방향키를 입력 받거나 하단 인터페이스의 되감기 버튼을 클릭했을 때 이 속성을 사용합니다.

참고: seekBack()

seekForwardIncrement

var seekForwardIncrement: Duration { get set }
타입설명설정기본값
Duration현재 위치에서 후로 이동하는 시간의 크기가능10초

seekForward()을 호출하여 이동할 때, 현재 위치에서 후로 이동하는 시간 정도를 나타내는 속성입니다. 오른쪽 방향키를 입력 받거나 하단 인터페이스의 빨리 감기 버튼을 클릭했을 때 이 속성을 사용합니다.

참고: seekForward()

seeking

var seeking: Bool { get }
타입설명설정
Bool현재 미디어가 새로운 위치로 이동하고 있는지(탐색 중인지) 여부불가능

미디어가 탐색 중인지를 반환하는 속성입니다. 현재 미디어가 새로운 위치로 이동하고 있거나 탐색중이면 true를 반환합니다.

subtitleDisplayPosition

var subtitleDisplayPosition: SubtitleDisplayPosition { get set }
타입설명설정
SubtitleDisplayPosition현재 미디어의 자막 출력 위치가능

현재 미디어의 자막 출력 위치를 나타내는 속성입니다.

subtitleTextFractionPosition

 var subtitleTextFractionPosition: CGFloat { get set }
타입설명설정기본값
Double자막 텍스트 위치가능1

현재 미디어의 자막 텍스트 위치를 비율 단위로 나타내는 속성입니다. 이 속성은 화면에서 자막이 배치될 위치를 비율로 표현하며, 값의 범위는 0.0에서 1.0 사이입니다. 기본값은 1.0으로, 자막이 화면의 맨 아래에 위치함을 의미합니다.

subtitleTextPixelPosition

 var subtitleTextPixelPosition: CGFloat { get set }
타입설명설정
Double자막 텍스트 위치가능

현재 미디어의 자막 텍스트 위치를 픽셀 단위로 나타내는 속성입니다.

subtitleTextSize

 var subtitleTextSize: SubtitleTextSize { get set }
타입설명설정
SubtitleTextSize자막 텍스트 크기가능

현재 미디어의 자막 텍스트 크기를 나타내는 속성입니다.

textTracks

var textTracks: [TextTrack] { get }
타입설명설정기본값
[TextTrack]자막 리스트불가능[]

자막 리스트를 반환하는 속성입니다.

참고: TextTrack

videoPan

var videoPan: CGPoint { get }
타입설명설정
CGPoint미디어 화면의 이동 정도불가능

현재 미디어 화면이 이동된 정도를 나타내는 속성입니다.

videoSize

var videoSize: CGSize { get }
타입설명설정
CGSizewidth와 height를 속성으로 가지는 구조체불가능

현재 재생 중인 미디어의 원래 크기를 반환하는 속성입니다.

참고: CGSize

videoTracks

var videoTracks: [VideoTrack] { get }
타입설명설정기본값
[VideoTrack]비디오 트랙 리스트불가능[]

비디오 트랙 리스트를 반환하는 속성입니다.

참고: VideoTrack

videoZoom

var videoZoom: Double { get }
타입설명설정
Double비디오 확대/축소 비율불가능

현재 비디오의 확대/축소 비율을 나타내는 속성입니다.

view

var view: UIView { get }
타입설명설정
UIView미디어 플레이어 화면 참고불가능

미디어 플레이어 뷰를 반환하는 속성입니다.

volume

var volume: Float { get set }
타입설명범위설정
Float현재 미디어의 음량0.0~1.0가능

미디어 플레이어의 음량을 나타내는 속성입니다.


메서드

addEventHandler(_)

func addEventHandler(_ handler: MediaPlayer.EventHandler) -> MediaPlayer.EventTarget
파라미터타입반환 타입설명
handlerMediaPlayer.EventHandlerMediaPlayer.EventTarget이벤트 핸들러, 이벤트 타겟 참고

이벤트 핸들러를 추가하기 위한 메서드입니다. 반환된 이벤트 타겟은 이벤트 핸들러를 제거할 목적으로 removeEventHandler(_)에서 사용할 수 있습니다. 이벤트 핸들러를 추가한 후, 해당 이벤트 핸들러가 더 이상 필요 없을 때는 반드시 removeEventHandler(_) 메서드를 사용해서 제거하세요.

addEventListener(_)

func addEventListener(_ listener: MediaPlayer.EventListener)
파라미터타입설명
listenerMediaPlayer.EventListener이벤트 리스너 참고

이벤트 리스너를 추가하기 위한 메서드입니다. 이밴트 리스너를 추가한 후, 해당 이벤트 리스너가 더 이상 필요 없을 때는 반드시 removeEventListener(_) 메서드를 사용해서 제거하세요.

containsPointInSubtitleTextBounds(_)

func containsPointInSubtitleTextBounds(_ point: CGPoint) -> Bool
파라미터타입설명
pointCGPoint미디어 화면 내 확인할 위치

현재 미디어 화면에서 지정된 위치가 자막 영역에 포함되는지 여부를 반환하는 메서드입니다.

fastSeekTo(position:)

func fastSeekTo(position: Duration)
파라미터타입설명
positionDuration재생하고자 하는 위치 값

입력된 시간으로 빠르게 이동하기 위한 메서드입니다. 언제나 딱 정확한 위치로 가지는 않습니다.

flipHorizontal()

func flipHorizontal()

현재 미디어 화면을 좌우 반전시키는 메서드입니다.

flipVertical()

func flipVertical()

현재 미디어 화면을 상하 반전시키는 메서드입니다.

hasNextMediaItem()

func hasNextMediaItem() -> Bool

다음에 재생할 미디어가 있는지를 반환하는 메서드입니다. 목록의 마지막이 아니거나, 전체 반복 모드일 경우 true를 반환합니다.

hasPreviousMediaItem()

func hasNextMediaItem() -> Bool

바로 앞에 재생할 미디어가 있는지를 반환하는 메서드입니다. 목록의 처음이 아니거나, 전체 반복 모드일 경우 true를 반환합니다.

load(mediaItem:)

func load(mediaItem: MediaItem)
파라미터타입설명
mediaItemMediaItem로드하려는 미디어 아이템

하나의 미디어를 로드하기 위한 메서드입니다.

참고: MediaItem

load(mediaItems:startMediaItemIndex:)

func load(
    mediaItems: [MediaItem],
    startMediaItemIndex: Int = 0
)
파라미터타입설명
mediaItems[MediaItem]로드하려는 미디어 아이템 목록
startMediaItemIndexInt목록 중에서 처음 재생할 미디어 아이템의 index

여러 개의 미디어를 로드하기 위한 메서드입니다. 처음으로 재생할 미디어를 정할 수 있습니다.

참고: MediaItem

load(src:)

func load(src: URL)
파라미터타입설명
srcURL로드하려는 미디어의 주소

URL을 사용하여 미디어를 로드하기 위한 메서드입니다.

pause()

func pause()

미디어를 일시 정지하기 위한 메서드입니다.

play()

func play()

미디어를 재생하기 위한 메서드입니다.

prepare()

func prepare()

미디어 관련 기본 설정을 하기 위한 메서드입니다. 이 메서드를 실행하면, autoplay, defaultPlaybackRate, defaultMuted 설정을 미디어 플레이어에 적용하고, 미디어를 로딩하는 과정까지 진행합니다.

removeEventHandler(_)

func removeEventHandler(target: MediaPlayer.EventTarget)
파라미터타입설명
targetMediaPlayer.EventTarget이벤트 핸들러, 이벤트 타겟 참고

addEventHandler(_)로 추가된 이벤트 핸들러를 제거하기 위한 메서드입니다.

removeEventListener(_)

func removeEventListener(_ listener: MediaPlayer.EventListener)
파라미터타입설명
listenerMediaPlayer.EventListener이벤트 리스너 참고

addEventListener(_)로 추가된 이벤트 리스너를 제거하기 위한 메서드입니다.

resumePlayback()

func resumePlayback()

suspendPlayback 호출로 인한 일시 정지된 재생을 재기합니다.

seekBack()

func seekBack()

현재 위치에서 속성 seekBackIncrement 만큼 전으로 이동하기 위한 메서드입니다.

seekBack(increment:)

func seekBack(increment: Duration)
파라미터타입설명
incrementDuration새로운 위치는 현재 위치에서 입력된 파라미터를 뺀 결과입니다.
즉, 음수 입력 시, 입력된 파라미터의 절대값만큼 후로 이동합니다.

현재 위치에서 입력된 시간 전으로 이동하기 위한 메서드입니다.

seekForward()

func seekForward()

현재 위치에서 속성 seekForwardIncrement 만큼 후로 이동하기 위한 메서드입니다.

seekForward(increment:)

func seekForward(increment: Duration)
파라미터타입설명
incrementDuration새로운 위치는 현재 위치에서 입력된 파라미터를 더한 결과입니다.
즉, 음수 입력 시, 입력된 파라미터의 절대값만큼 되돌아갑니다.

현재 위치에서 입력된 시간 후로 이동하기 위한 메서드입니다.

seekTo(position:)

func seekTo(position: Duration)
파라미터타입설명
positionDuration입력된 값으로 재생 위치를 이동합니다.

입력된 시간 위치로 정확하게 이동하기 위한 메서드입니다.

seekTo(mediaItemIndex:position:)

func seekTo(mediaItemIndex: Int, position: Duration = .indefinite)
파라미터타입설명필수
mediaItemIndexInt재생 목록에서 미디어 아이템의 indexO
positionDuration해당 미디어에서 재생하고하 하는 위치
입력하지 않으면, 마지막에 재생했던 위치에서 시작합니다.
X

현재 재생 중인 미디어를 정지하고 다른 미디어를 재생하기 위한 메서드입니다. 재생 목록의 index만 파라미터로 넘겨줄 경우에는, 해당 미디어의 마지막에 재생했던 위치에서 시작합니다.

seekToNext()

func seekToNext()

seekToNexMediaItemt()와 동일합니다.

seekToNextMediaItem()

func seekToNextMediaItem()

다음으로 재생할 미디어가 있을 경우 현재 재생중인 미디어를 정지하고 다음 미디어로 이동하는 메서드입니다. 목록의 맨 뒤에 위치한 미디어이지만 전체 반복 모드일 경우, 목록의 맨 앞으로 이동합니다.

seekToPrevious()

func seekToPrevious()

현재 재생 위치가 속성 maxSeekToPreviousPosition보다 앞이면 이전 미디어로 이동합니다.(참고: seekToPreviousMediaItem()) 그렇지 않으면 현재 미디어의 맨 앞으로 이동합니다.

seekToPreviousMediaItem()

func seekToPreviousMediaItem()

앞에 재생할 미디어가 있을 경우 현재 재생중인 미디어를 정지하고 이전 미디어로 이동하는 메서드입니다. 목록의 맨 앞에 위치한 미디어일 경우, 목록의 마지막 미디어로 이동합니다.

startPictureInPicture()

func startPictureInPicture()

화면 속 화면 모드를 시작하는 메서드입니다.

startScrubbing(position:fast:)

func startScrubbing(position: Duration, fast: Bool = false)
파라미터타입설명필수
positionDuration시작 위치O
fastBooltrue이면 빠른 이동, false이면 정확한 이동을 합니다.O

스크러빙을 시작합니다.

stop()

func stop()

미디어를 완전 종료할 때 부르는 메서드입니다. MediaPlayer가 종료되면 자동으로 호출됩니다.

stopPictureInPicture()

func stopPictureInPicture()

화면 속 화면 모드를 종료하는 메서드입니다.

stopScrubbing(position:)

func stopScrubbing(position: Duration)
파라미터타입설명필수
positionDuration시작 위치O

스크러빙을 종료합니다.

suspendPlayback()

func suspendPlayback()

재생을 일시 정지합니다. 다시 재생을 재기하려면 resumePlayback을 호출합니다.

updateScrubbing(position:)

func updateScrubbing(position: Duration)
파라미터타입설명필수
positionDuration시작 위치O

스크러빙 위치를 갱신합니다.

zoomVideo(_)

func zoomVideo(_ zoom: Double)
파라미터타입설명
zoomDouble비디오 확대/축소 비율

비디오 확대/축소할 때 사용하는 메서드입니다.

zoomVideo(_:pivot:)

func zoomVideo(_ zoom: Double, pivot: CGPoint)
파라미터타입설명필수
zoomDouble비디오 확대/축소 비율O
pivotCGPoint중심 좌표O

비디오 확대/축소가 적용될 중심이 되는 좌표를 지정하여 확대/축소할 때 사용하는 메서드입니다.

참고: zoomVideo(_)

열거형

PlaybackState

enum PlaybackState

현재 미디어 상태를 나타내는 열거형입니다.

RepeatMode

enum RepeatMode

현재 미디어의 반복 모드 상태를 나타내는 열거형입니다.

ScalingMode

enum ScalingMode

현재 미디어 화면의 스케일링 상태를 나타냅니다.

SubtitleDisplayPosition

enum SubtitleDisplayPosition

현재 미디어의 자막 출력 위치를 나타냅니다.


구조체

RepeatRange

struct RepeatRange: Equatable

반복 모드에서 사용되는 구조체입니다.