MediaPlayer
@Composablefun VideoPlayer(modifier: Modifier = Modifier) { var player by remember { mutableStateOf<MediaPlayer?>(null) }
Scaffold() { innerPadding -> Card(modifier = Modifier.padding(innerPadding)) { AndroidView( { SurfaceView(it).apply { holder.addCallback(object : SurfaceHolder.Callback { override fun surfaceChanged( p0: SurfaceHolder, p1: Int, p2: Int, p3: Int ) { } override fun surfaceCreated(p0: SurfaceHolder) { player = MediaPlayer().apply { val path = context.assets.openFd("pitch.webm") val url = "https://youtube.eliaschen.dev/download/Olivia%20Rodrigo%20-%20drivers%20license%20(Official%20Video).mp4" setDataSource(url) setDisplay(holder) prepareAsync() setOnPreparedListener { it.start() } } }
override fun surfaceDestroyed(p0: SurfaceHolder) { player?.apply { stop() release() } } }) } }, modifier = Modifier .aspectRatio(16f / 9f) ) } }}Other Usage
Section titled “Other Usage”- Speed
player.playbackParams = PlaybackParams().apply { speed = 1.5f pitch = 1f}- Volume
player.setVolume(0.0f, 1.0f)