https://developer.apple.com/videos/play/wwdc2024/10113/
해당 포스트는 위 영상을 기반으로 개인적으로 메모/정리한 글입니다.
개요
미디어 성능 관련 API 신규 소개. HLS 를 위한 AVPlayer 성능을 측정하는 새로운 방법을 배워보자.
What are events?
iOS 18부터 미디어 성능 분석지표(metrics)는 ‘Event’로 표현된다
As-is & To-be
지금까지는 `access logs()`, `error logs()`, AVPlayer Notification 등을 사용해서 분석지표들을 얻을 수 있었다
iOS 18 부터는 (HLS 스트리밍 환경에서는) 분석지표들이 강화되었다. CDN 파트너와 함께 문제 상황을 파악하기 쉬워질 것으로 기대된다.
- Playlist event, Media segment event, Content key event
- Stall event, Variant switch event, Summary event
- Rate change event, Seek event, Error event 등등
Example: 흔한 미디어 재생 이슈들
1) 재생에 걸리기까지의 시간이 너무 길다 -> iOS 18부터는 재생을 지연시키는 데에 영향을 주는 playlist, media segment, content key 등을 알 수 있다
2) 재생 버퍼로 인한 멈춤 -> iOS 18부터는 재생 멈춤(Stall)이 발생한 상황을 자세히 파악할 수 있다
Subscribing to events
이벤트들을 구독해서 매 이벤트 타임라인마다 노티 받기.
new API: AVMetrics
사용 방법 검색 키워드: AVMetricEventStreamPublisher
let playerItem : AVPlayerItem = ...
let ltkuMetrics = item.metrics(forType: AVMetricPlayerItemLikelyToKeepUpEvent.self)
let summaryMetrics = item.metrics(forType: AVMetricPlayerItemPlaybackSummaryEvent.self)
for await (metricEvent, publisher) in ltkuMetrics.chronologicalMerge(with: summaryMetrics)
{
// send metricEvent to backend analytics server
}
'WWDC > 2024' 카테고리의 다른 글
Analyze heap memory (0) | 2024.08.08 |
---|---|
Explore Swift performance (0) | 2024.08.08 |
Demystify explicitly built modules (추천세션!) (0) | 2024.08.08 |
Migrate your app to Swift 6 (추천세션!) (0) | 2024.08.08 |
Consume noncopyable types in Swift (0) | 2024.08.08 |