Need AirPlay capability for Image and Live Photos

The Photos app on iOS is capable of playing Live Photos and showing images on another screen. My SwiftUI app is able to AirPlay videos and I can make the button appear or not using AVPlayer's isExternalPlaybackActive boolean. However, that boolean is not available for images and Live Photos.

I've tried using an AVRoutePickerView(), which gives me a button for the user to start/stop AirPlay, but I have not found a way to associate it with SwiftUI's Image or my LivePhotoView:

struct LivePhotoView: UIViewRepresentable {
    var livephoto: PHLivePhoto
    @Binding var playback:Bool
    @AppStorage("playAudio") var playAudio = userDefaults.bool(forKey: "playAudio")

    func makeUIView(context: Context) -> PHLivePhotoView {
        let view = PHLivePhotoView()
        try! AVAudioSession.sharedInstance().setCategory({playAudio ? .playback : .soloAmbient}())
        view.contentMode = .scaleAspectFit
        return view
    }

    func updateUIView(_ lpView: PHLivePhotoView, context: Context) {
        lpView.livePhoto = livephoto
        if playback {
            lpView.isMuted = false
            try! AVAudioSession.sharedInstance().setCategory({playAudio ? .playback : .soloAmbient}())
            try! AVAudioSession.sharedInstance().setActive(true)
            lpView.isMuted = false
            lpView.startPlayback(with: .full)
        } else {
            lpView.stopPlayback()
        }
    }
}
struct RouteButtonView: UIViewRepresentable {
    func makeUIView(context: Context) -> AVRoutePickerView {
        let routePickerView = AVRoutePickerView()
        routePickerView.tintColor = .gray
        routePickerView.prioritizesVideoDevices = true
        return routePickerView
    }
    
    func updateUIView(_ uiView: AVRoutePickerView, context: Context) {
        // No update needed
    }
}

Am I missing something? If it's a system internal API only available to the Photos App, why?

Mike

I just realized "appear or not" was an ambiguous way of saying: I can make the button appear or disappear by flipping the value of isExternalPlaybackActive.

Is there maybe a way for AVPlayer to present an Image or a Live Photo that I am not aware of?

Mike

Need AirPlay capability for Image and Live Photos
 
 
Q