Android13 kotlin SurfaceView播放视频只有声音没有画面问题解决 详细代码
要在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上播放视频并显示画面了
原文地址: https://www.cveoy.top/t/topic/izOP 著作权归作者所有。请勿转载和采集!