Dunfey · Hotel WWDC as data, est. 1983
Front desk everything
Years
Topics

2024 Audio & Video

WWDC24 · 9 min · Audio & Video

Discover media performance metrics in AVFoundation

Discover how you can monitor, analyze, and improve user experience with the new media performance APIs. Explore how to monitor AVPlayer performance for HLS assets using different AVMetricEvents, and learn how to use these metrics to understand and triage player performance issues.

Watch at developer.apple.com ↗

Transcript all transcripts

Chapters

Code shown on screen · 3 snippets

AVMetric Publishers swift · at 6:27 ↗
public protocol AVMetricEventStreamPublisher 
{
	func metrics<MetricType: AVMetricEvent>(forType metricType: MetricType.Type) -> AVMetrics<MetricType>

	func allMetrics() -> AVMetrics<AVMetricEvent>
}

extension AVPlayerItem : AVMetricEventStreamPublisher
Example showing how to obtain likely to keep up and summary metrics from AVPlayerItem - Swift swift · at 6:50 ↗
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 server
}
Example showing how to obtain likely to keep up and summary metrics from AVPlayerItem - Objective-C swift · at 7:26 ↗
AVPlayerItem *item = ...
	
AVMetricEventStream *eventStream = [AVMetricEventStream eventStream];
id<AVMetricEventStreamSubscriber> subscriber = [[MyMetricSubscriber alloc] init];
[eventStream setSubscriber:subscriber queue:mySerialQueue]

[eventStream subscribeToMetricEvent:[AVMetricPlayerItemLikelyToKeepUpEvent class]];
[eventStream subscribeToMetricEvent:[AVMetricPlayerItemPlaybackSummaryEvent class]];

[eventStream addPublisher:item];

Resources