Kapil Yadav
01/19/2024, 10:07 AMJoel Denke
01/19/2024, 10:30 AMKapil Yadav
01/19/2024, 10:31 AMJoel Denke
01/19/2024, 10:31 AMJoel Denke
01/19/2024, 10:32 AMKapil Yadav
01/19/2024, 10:48 AMJoel Denke
01/19/2024, 10:50 AMJoel Denke
01/19/2024, 10:52 AMFLAnimatedImage *image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"<https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif>"]]];
FLAnimatedImageView *imageView = [[FLAnimatedImageView alloc] init];
imageView.animatedImage = image;
imageView.frame = CGRectMake(0.0, 0.0, 100.0, 100.0);
[self.view addSubview:imageView];
And then for Android using Coil variant.Joel Denke
01/19/2024, 10:53 AM@Composable
actual fun VideoPlayer(modifier: Modifier, url: String, settings: VideoSettings) {
val player = remember { AVPlayer(uRL = NSURL.URLWithString(url)!!) }
val playerLayer = remember { AVPlayerLayer() }
val avPlayerViewController = remember { AVPlayerViewController() }
avPlayerViewController.player = player
avPlayerViewController.showsPlaybackControls = settings.showController
avPlayerViewController.videoGravity = AVLayerVideoGravityResizeAspectFill
playerLayer.player = player
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
UIKitView(
factory = {
// Create a UIView to hold the AVPlayerLayer
val playerContainer = UIView()
playerContainer.addSubview(avPlayerViewController.view)
playerContainer
},
onResize = { view: UIView, rect: CValue<CGRect> ->
CATransaction.begin()
CATransaction.setValue(true, kCATransactionDisableActions)
view.layer.setFrame(rect)
playerLayer.setFrame(rect)
avPlayerViewController.view.layer.frame = rect
CATransaction.commit()
},
update = {
player.play()
avPlayerViewController.player?.play()
},
modifier = modifier
)
}
I imagine could do similar for gifs 🙂Kapil Yadav
01/19/2024, 11:01 AMbrandonmcansh
02/21/2024, 5:24 PMKapil Yadav
02/27/2024, 4:52 AMbrandonmcansh
02/27/2024, 5:06 AMKapil Yadav
02/27/2024, 8:57 AM