Skip to content

MediaPlayer

@Composable
fun 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)
)
}
}
}
  • Speed
player.playbackParams = PlaybackParams().apply {
speed = 1.5f
pitch = 1f
}
  • Volume
player.setVolume(0.0f, 1.0f)