MediaPlayer.EventListener (MediaPlayerListener)

extension MediaPlayer {
    public typealias Listener = MediaPlayerListener
}
protocol MediaPlayerListener : AnyObject

EventListener는 이벤트 처리를 위한 프로토콜로, 위와 같은 메서드를 제공합니다. 각각 메서드에 대한 설명은 메서드를, 사용 방법은 addEventListener(_)를 참고하시면 됩니다. 이밴트 리스너를 추가한 후, 해당 이벤트 리스너가 더 이상 필요 없을 때는 반드시 removeEventListener(_) 메서드를 사용해서 제거하세요.
이벤트 리스너를 대신하여 사용 방법에 따라서 이벤트 핸들러를 사용하여 이벤트 처리를 할 수 있습니다. 이벤트 핸들러에서 사용되는 파라미터는 이벤트 리스너의 파라미터와 동일합니다. 이벤트 핸들러의 사용 방법은 addEventHandler(_)케이스를 참고하시면 됩니다.


메서드

onCueChange(textCues:)

func onCueChange(textCues: [TextTrack.Cue])
파라미터 이름타입설명
textCues[TextTrack.Cue]자막 큐들

자막 큐가 변경되는 시점에 실행합니다.

onDurationChange(duration:)

func onDurationChange(duration: Duration)
파라미터 이름타입설명
durationDuration미디어 길이

미디어의 길이(duration)가 변경되는 시점에 실행합니다.

이벤트 핸들러: MediaPlayer.EventHandler.durationChange
참고: Duration

onEnded()

func onEnded()

재생 목록의 마지막 미디어의 재생이 완료된 시점에 실행합니다.

이벤트 핸들러: MediaPlayer.EventHandler.ended

onError(error:)

func onError(error: Error)
파라미터 이름타입설명
errorError에러

에러가 발생할 때 실행합니다.

onLoadedData()

func onLoadedData()

미디어 아이템이 로드되었을 때 실행합니다.

onLoadStart()

func onLoadStart()

미디어 리소스를 로딩하기 시작할 때 실행합니다.

이벤트 핸들러: MediaPlayer.EventHandler.loadStart

onMediaItemTransition(item:)

func onMediaItemTransition(item: MediaItem?)
파라미터 이름타입설명
itemMediaItem교체된 미디어 아이템

미디어 아이템이 교체 되는 시점에 실행합니다.

onPause()

func onPause()

미디어가 일시 정지 상태로 진입하는 시점에 실행합니다.

이벤트 핸들러: MediaPlayer.EventHandler.pause
비교: onPlay

onPictureInPictureActiveChange(active:)

func onPictureInPictureActiveChange(active: Bool)
파라미터 이름타입설명
activeBool현재 화면 속 화면 모드인 지 여부

화면 속 화면 모드가 켜지거나 꺼지는 시점에 실행합니다.

onPictureInPicturePossibleChange(possible:)

func onPictureInPicturePossibleChange(possible: Bool)
파라미터 이름타입설명
possibleBool화면 속 화면 모드 사용 가능 여부

화면 속 화면 모드를 사용할 수 있을 때, (혹은 반대의 경우에) 실행합니다. 예를 들면, 화면 속 화면 모드 버튼을 활성화 및 비활성화 하기 위해서 필요합니다.

onPictureInPictureDidStart()

func onPictureInPictureDidStart()

화면 속 화면 모드가 시작한 후 실행합니다.
화면 속 화면 모드로 들어가면, onPictureInPictureWillStart()onPictureInPictureActiveChange(true) → onPictureInPictureDidStart()의 순서대로 실행합니다.

onPictureInPictureDidStop()

func onPictureInPictureDidStart()

화면 속 화면 모드가 끝나면 실행합니다.
화면 속 화면 모드가 종료되면, onPictureInPictureWillStop()onPictureInPictureActiveChange(false) → onPictureInPictureDidStop()의 순서대로 호출됩니다.

onPictureInPictureWillStart()

func onPictureInPictureWillStart()

화면 속 화면 모드가 시작하기 직전에 실행합니다.
화면 속 화면 모드로 들어가면, onPictureInPictureWillStart()onPictureInPictureActiveChange(true) → onPictureInPictureDidStart()의 순서대로 실행합니다.

onPictureInPictureWillStop()

func onPictureInPictureWillStop()

화면 속 화면 모드가 끝나기 직전애 실행합니다.
화면 속 화면 모드가 종료되면, onPictureInPictureWillStop()onPictureInPictureActiveChange(false) → onPictureInPictureDidStop()의 순서대로 호출됩니다.

onPlay()

func onPlay()

미디어가 일시 정지 상태에서 재생 상태로 변경되는 시점에 실행합니다. 사용자가 재생 버튼을 클릭하거나 mediaPlayer.play()를 호출하는 등 플레이어에 재생 명령을 내렸을 때 등과 같이 명령을 했을 때 상황에서 이벤트 처리를 여기서 할 수 있습니다. onPlay가 실행된 이후에 onPlaying는 언제나 호출됩니다. 재생 중에 미디어를 이동하든지 재생 위치를 이동하면, 언제나 onPause -> onPlay -> onPlaying 순서로 호출됩니다.

이벤트 핸들러: MediaPlayer.EventHandler.play
비교: onPause
참고: onPlaying

onPlaybackFinish(mediaItem:position:duration:reason:)

public func onPlaybackFinish(
    mediaItem: MediaItem,
    position: Duration,
    duration: Duration?,
    reason: PlaybackFinishReason
)
파라미터 이름타입설명
mediaItemMediaItem종료된 미디어 아이템
positionDuration마지막 재생 위치
durationDuration미디어 길이
reasonPlaybackFinishReason미디어 종료 원인

미디어가 종료될 때 실행합니다. 이 때 마지막 재생 위치(position)와 미디어의 길이(duration) 값을 사용할 수 있습니다. 주의할 점은, 미디어가 로드된 후에 종료할 때만 실행된다는 것입니다. 만약 미디어가 로드되기 전에 종료되는 상황에도 사용하려면, onUnload(mediaItem:)를 참고하세요.

onPlaybackStateChange(state:)

func onPlaybackStateChange(state: MediaPlayer.PlaybackState)
파라미터 이름타입설명
stateMediaPlayer.PlaybackState재생 상태

미디어 로딩 상태에 따라서, 즉, 버퍼링인지 준비가 된 상태인지, 끝이 났는지, 플레이어를 종료하였는지 등의 상황이 발생하면 실행합니다. 상황에 따른 설명은 playbackState를 참고하세요.

onPlaying()

func onPlaying()

미디어가 재생 상태로 변한 직후에 실행합니다. playing과 관련된 이벤트 핸들러는 play 이벤트 이후에 항상 호출됩니다.

이벤트 핸들러: MediaPlayer.EventHandler.playing
참고: onPlay

onPositionDiscontinuity(oldPosition:newPosition:)

func onPositionDiscontinuity(oldPosition: Duration, newPosition: Duration)
파라미터 이름타입설명
oldPositionDuration이전 재생 위치
newPositionDuration바뀐 재생 위치

재생 위치가 변경되는 시점에 실행합니다. 이전 위치와 이동한 위치 모두 접근이 가능합니다.

onProgress()

func onProgress()

플레이어가 리소스를 읽을 때 실행합니다.

이벤트 핸들러: MediaPlayer.EventHandler.progress

onRateChange(rate:)

func onRateChange(rate: Float)
파라미터 이름타입설명
rateFloat재생 속도

재생 속도가 변경되는 시점에 실행합니다.

onRepeatModeChange(mode:)

func onRepeatModeChange(mode: MediaPlayer.RepeatMode)
파라미터 이름타입설명
modeMediaPlayer.RepeatMode반복 모드 종류

반복 모드가 설정되었을 때 실행합니다.

onRepeatRangeChange(range:)

func onRepeatRangeChange(range: MediaPlayer.RepeatRange?)
파라미터 이름타입설명
rangeMediaPlayer.RepeatRange?구간 반복에서의 구간

구간 반복 모드가 시작되거나 종료되었을 때, 그리고 구간 반복의 시작 위치 또는 종료 위치가 바뀌었을 때 실행합니다.

onScalingModeChange(mode:)

func onScalingModeChange(mode: MediaPlayer.ScalingMode)
파라미터 이름타입설명
modeMediaPlayer.ScalingMode화면 스케일링 상태

미디어 화면의 스케일링 상태가 변하는 시점에 실행합니다.

onSeeked()

func onSeeked()

seek 작업이 완료된 시점, 또는 재생 위치가 변경되는 시점, 또는 seeking 값이 false로 변경되는 시점에 실행합니다.

이벤트 핸들러: MediaPlayer.EventHandler.seeked

onSeeking()

func onSeeking()

seek 작업이 시작되는 시점, 또는 seeking 값이 false에서 true로 변경되는 시점에 실행합니다.

이벤트 핸들러: MediaPlayer.EventHandler.seeking

onScrubMove(position: Duration)

func onScrubMove(position: Duration)
파라미터 이름타입설명
positionDuration스크러빙 위치

스크러빙 위치가 갱신되는 시점에 실행합니다.

onScrubStart(position: Duration)

func onScrubStart(position: Duration)
파라미터 이름타입설명
positionDuration스크러빙 위치

스크러빙이 시작되는 시점에 실행합니다.

onScrubStop(position: Duration)

func onScrubStop(position: Duration)
파라미터 이름타입설명
positionDuration스크러빙 위치

스크러빙이 종료되는 시점에 실행합니다.

onTimeUpdate(position:)

func onTimeUpdate(position: Duration)
파라미터 이름타입설명
positionDuration현재 재생 위치

currentTime이 변경되는 시점에 실행합니다. 즉, 미디어가 재생이 되는 동안 수행하려는 작업을 이곳에 구현하시면 됩니다.

이벤트 핸들러: MediaPlayer.EventHandler.timeUpdate
참고: Duration

onUnload(mediaItem:)

func onUnload(mediaItem: MediaItem)
파라미터 이름타입설명
mediaItemMediaItem종료된 미디어 아이템

미디어가 제거된 시점, 즉, 미디어 주소가 변경되기 직전, 기존에 존재하던 미디어를 비울 때를 실행합니다.

이벤트 핸들러: MediaPlayer.EventHandler.unload
참고: MediaItem

onVideoSizeChange(size:)

func onVideoSizeChange(size: CGSize)
파라미터 이름타입설명
sizeCGSize영상 사이즈

미디어 아이템의 비디오 크기가 달라지는 시점에 실행합니다. 아이템을 교체하는 순간에는 (0.0, 0.0)의 값으로 바뀌는 것도 체크를 하니 참고하시기 바랍니다.

이벤트 핸들러: MediaPlayer.EventHandler.videoSizeChange
참고: CGSize

onVolumeChange(volume:muted:)

func onVolumeChange(volume: Float, muted: Bool)
파라미터 이름타입설명
volumeFloat디바이스 음량
mutedBool음소거 여부

볼륨이 변경되는 시점에 실행합니다. 무음(muted) 상태가 변경될 때도 실행합니다.

onWaiting()

func onWaiting()

일시적인 버퍼 부족, 즉 데이터가 충분히 로딩되지 못하거나 데이터가 없어서 재생이 정지된 시점에 실행됩니다. playbackState가 .buffering이 될 때 호출됩니다.

이벤트 핸들러: MediaPlayer.EventHandler.waiting