【Android从零单排系列十八】《Android视图控件——VideoView》

2023-07-17 20:26:34 浏览数 (1)

前言

小伙伴们,在上文中我们介绍了Android视图组件WebView,本文我们继续盘点,介绍一下视图控件的VideoView。

一 VideoView基本介绍

videoView是Android平台上用于播放视频的控件,它提供了一些常见属性和方法来控制视频的播放。

二 VideoView使用方法

在布局文件中添加VideoView:

代码语言:javascript复制
<VideoView
    android:id="@ id/videoview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

在Java代码中使用VideoView加载和播放视频:

代码语言:javascript复制
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private VideoView videoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 获取VideoView实例
        videoView = findViewById(R.id.videoview);

        // 设置视频路径(可以是本地路径或网络URL)
        String videoPath = "https://www.example.com/video.mp4";
        Uri uri = Uri.parse(videoPath);
        videoView.setVideoURI(uri);

        // 创建媒体控制器(MediaController)
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);

        // 关联媒体控制器
        videoView.setMediaController(mediaController);

        // 开始播放视频
        videoView.start();
    }
}

注意:在使用VideoView时要确保已获取相关权限(如网络访问权限),并在AndroidManifest.xml文件中进行相应的声明。

三 VideoView常见属性及方法

属性:

  1. android:videoPath:指定要播放的本地视频文件路径。
  2. android:videoURI:指定要播放的视频的URI(可以是本地路径或网络URL)。
  3. android:mediaController:指定关联的媒体控制器。

方法:

  1. setVideoPath(String path):设置要播放的本地视频文件路径。
  2. setVideoURI(Uri uri):设置要播放的视频的URI(可以是本地路径或网络URL)。
  3. start():开始播放视频。
  4. pause():暂停播放视频。
  5. resume():继续播放视频(从暂停状态恢复)。
  6. stopPlayback():停止视频播放。
  7. seekTo(int msec):将视频跳转到指定的位置(以毫秒为单位)。
  8. isPlaying():检查当前是否正在播放视频。
  9. getDuration():获取视频的总时长。
  10. getCurrentPosition():获取当前视频播放的位置。
  11. setMediaController(MediaController controller):设置关联的媒体控制器。

四 VideoView简单Demo

准备视频文件: 在项目的res目录下创建raw文件夹,并将要播放的视频文件(例如video.mp4)放入该文件夹中。

在布局文件中添加VideoView:

代码语言:javascript复制
<VideoView
    android:id="@ id/videoView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

在Java代码中加载和播放视频:

代码语言:javascript复制
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private VideoView videoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        videoView = findViewById(R.id.videoView);
        String videoPath = "android.resource://"   getPackageName()   "/raw/video";
        Uri uri = Uri.parse(videoPath);
        videoView.setVideoURI(uri);

        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        videoView.setMediaController(mediaController);

        videoView.start();
    }
}

五 总结

通过VideoView,你可以加载本地视频或通过网络URL播放视频。同时,你还可以创建媒体控制器(MediaController)来提供基本的视频播放控制,例如播放、暂停、快进和快退等。

0 人点赞