feat(player): add Apple TV remote play/pause and AirPlay support

- Add playPause event handling in useRemoteControl hook
- Configure AVAudioSession for tvOS with longFormAudio policy
- Add AVInitialRouteSharingPolicy to enable AirPlay suggestions
This commit is contained in:
Fredrik Burmester
2026-01-16 12:42:13 +01:00
parent 8d90fe3a8b
commit db89295d9b
3 changed files with 20 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
import AVFAudio
import AVFoundation
import CoreMedia
import ExpoModulesCore
@@ -63,6 +64,7 @@ class MpvPlayerView: ExpoView {
private func setupView() {
clipsToBounds = true
backgroundColor = .black
configureAudioSession()
videoContainer = UIView()
videoContainer.translatesAutoresizingMaskIntoConstraints = false
@@ -111,6 +113,21 @@ class MpvPlayerView: ExpoView {
CATransaction.commit()
}
private func configureAudioSession() {
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(
.playback,
mode: .moviePlayback,
policy: .longFormAudio,
options: []
)
try audioSession.setActive(true)
} catch {
print("Failed to configure audio session: \(error)")
}
}
func loadVideo(config: VideoLoadConfig) {
// Skip reload if same URL is already playing
if currentURL == config.url {