欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android:如何使用VideoView(TV显示屏待机状态,循环播放视频)

程序员文章站 2022-05-01 19:13:25
Android:使用VideoView播放视频1,添加VideoView组件2,添加视频文件3,使用MediaController控制视频播放VideoView是Android提供的一款用于播放视频的控件[1]1,添加VideoView组件我们可以将组件添加到布局文件中,也可以在程序中创建。


VideoView是Android提供的一款用于播放视频的控件[1]


1,添加VideoView组件

我们可以将组件添加到布局文件中,也可以在程序中创建。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_vv"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.pwong.pandroid.view.VVActivity">
    <VideoView
        android:id="@+id/mVideoView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</FrameLayout>

2,添加视频文件

我们可以采用下面两种方式去添加一个视频文件:
public void setVideoPath(String path);

根据文件路径去播放视频文件

public void setVideoURI(Uri uri);

根据Uri去指定视频文件


3,使用MediaController控制视频播放

VideoView提供了start()stop()pause()三个方法去控制视频播放。但是对于视频播放来说自己去处理逻辑关系仍然稍显复杂。于是Android提供一个MediaController类作为媒体文件播放的控制器。用法如下:


package com.pwong.pandroid.view

import android.app.Activity
import android.os.Bundle
import android.widget.MediaController
import com.pwong.pandroid.R
import kotlinx.android.synthetic.main.activity_vv.*

/**
 * @author qdreamer-x
 * @data
 * @instruction killing bugs
 */
class VVActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_vv)
        val mController = MediaController(this)
        mVideoView.setVideoPath("android.resource://" + packageName + "/" + R.raw.video)
        mVideoView.setMediaController(mController)
        mController.setMediaPlayer(mVideoView)
        mVideoView.requestFocus()
        mVideoView.start()
        mVideoView.setOnPreparedListener { mp ->
            mp.start()
            mp.isLooping = true
        }
    }

}

本文地址:https://blog.csdn.net/h471507602/article/details/107765889