要在Android中使用SurfaceView来播放视频,您需要使用MediaPlayer类来控制视频的播放。以下是一个使用Kotlin编写的示例代码,可以在SurfaceView上播放视频并显示画面。

首先,在您的布局文件中添加一个SurfaceView组件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <SurfaceView
        android:id="@+id/surfaceView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

然后,在您的Activity或Fragment中,初始化MediaPlayer并将视频渲染到SurfaceView上:

import android.media.MediaPlayer
import android.net.Uri
import android.os.Bundle
import android.view.SurfaceHolder
import android.view.SurfaceView
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity(), SurfaceHolder.Callback {

    private lateinit var mediaPlayer: MediaPlayer

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val surfaceView: SurfaceView = findViewById(R.id.surfaceView)
        val surfaceHolder = surfaceView.holder
        surfaceHolder.addCallback(this)

        mediaPlayer = MediaPlayer()
        mediaPlayer.setDataSource(this, Uri.parse("path_to_your_video_file"))
    }

    override fun surfaceCreated(holder: SurfaceHolder?) {
        mediaPlayer.setDisplay(holder)
        mediaPlayer.prepare()
        mediaPlayer.start()
    }

    override fun surfaceChanged(holder: SurfaceHolder?, format: Int, width: Int, height: Int) {
    }

    override fun surfaceDestroyed(holder: SurfaceHolder?) {
        mediaPlayer.release()
    }
}

请确保将"path_to_your_video_file"替换为您实际的视频文件路径。

这样,您就可以在SurfaceView上播放视频并显示画面了

Android13 kotlin SurfaceView播放视频只有声音没有画面问题解决 详细代码

原文地址: https://www.cveoy.top/t/topic/izOP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录