@Composable actual fun VideoPlayer( url: Uri, modifier: Modifier, ) { val nsUrl = NSURL.URLWithString(url.value) ?: return val player = remember { AVPlayer(uRL = nsUrl) } val playerViewController = remember { AVPlayerViewController() } playerViewController.player = player playerViewController.showsPlaybackControls = true UIKitView( factory = { playerViewController.view }, update = { player.play() }, onResize = { view: UIView, rect: CValue<CGRect> -> CATransaction.begin() CATransaction.setValue(true, kCATransactionDisableActions) view.layer.frame = rect CATransaction.commit() }, modifier = modifier, ) } iosMain/VideoPlayer.kt UIKitView( factory = { playerViewController.view }, update = { player.play() }, onResize = { view: UIView, rect: CValue<CGRect> -> /* Viewのサイズ調整 */ }, modifier = modifier, ) AVPlayerViewController に紐づくViewをUIKitViewに描画し Compose Multiplatform上で表示