# Resolution

ByteArk Player SDK for iOS supports both automatic Adaptive Bitrate Streaming (ABR) and manual resolution selection by the viewer.

# Adaptive Bitrate Streaming (ABR)

By default, AVPlayer adjusts the resolution automatically based on network speed using HLS ABR.

# Select a resolution via API

// List all resolutions
let resolutions: [ByteArkPlayerMediaResolution] = player.resolutions
// Current resolution
let current: ByteArkPlayerMediaResolution? = player.resolution
// Select a resolution
player.setResolution(resolutions[0])
1
2
3
4
5
6
7
8

# Receive resolution-change events

override func playbackResolutionChanged(
  player: ByteArkPlayer,
  resolution: ByteArkPlayerMediaResolution?
) {
  super.playbackResolutionChanged(player: player, resolution: resolution)
  // Resolution changed
}
1
2
3
4
5
6
7

Note

For showing a resolution picker on Safari for iOS/iPadOS in a Web context, see the Web SDK's Apple Quality Switcher. On the native iOS SDK the player relies on AVPlayer's ABR.