Android VideoView实现视频播放

一、说明

VideoView是一个Android平台上的视屏播放组件,它封装了MediaPlayer、SurfaceView等类,提供了比较简单的视频播放控制功能。通过VideoView,可以实现在线视频播放、本地视频播放等。

VideoView提供了一些常用的视频播放控制函数,如play()、pause()等,同时也可以设置一些显示属性,如大小、位置等。

二、实现步骤

1、将VideoView控件放到布局文件中

在layout文件夹下的布局文件中添加VideoView控件,例如:

    <VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

2、设置MediaController控制器

MediaController是一个包含常规播放控件的对象,例如播放、暂停、快进、后退等。要显示一个MediaController对象,需要将其附加到VideoView中。在代码中,调用setMediaController()方法将其附加到VideoView中:

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

3、加载视频

加载视频需要设置视频的路径,可以是本地路径或者网络路径,通过调用setVideoPath()方法来设置:

    String videoPath = "http://www.example.com/sample.mp4";
    videoView.setVideoPath(videoPath);

4、播放视频

调用start()方法开始播放视频:

    videoView.start();

5、监听视频状态

可以为VideoView添加一个OnCompletionListener监听器,该监听器可以在视频播放完成后执行一些操作。例如:

    videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mediaPlayer) {
            //播放完成后的操作
        }
    });

三、示例代码

以下是一个基本的VideoView的实现,包括加载本地视频、网络视频、添加MediaController、添加监听器。

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);

        //从资源文件加载本地视频
        String videoPath = "android.resource://" + getPackageName() + "/" + R.raw.sample;

        //从网络加载视频
        //String videoPath = "http://www.example.com/sample.mp4";

        //设置视频路径
        videoView.setVideoPath(videoPath);

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

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

        //添加视频播放完成后的监听器
        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                //播放完成后的操作
            }
        });
    }
}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/246735.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:17
下一篇 2024-12-12 13:17

相关推荐

  • Android ViewPager和ScrollView滑动冲突问题

    Android开发中,ViewPager和ScrollView是两个常用的控件。但是当它们同时使用时,可能会发生滑动冲突的问题。本文将从多个方面介绍解决Android ViewPa…

    编程 2025-04-28
  • Android如何点击其他区域收起软键盘

    在Android应用中,当输入框获取焦点弹出软键盘后,我们希望能够点击其他区域使软键盘消失,以提升用户体验。本篇文章将说明如何实现这一功能。 一、获取焦点并显示软键盘 在Andro…

    编程 2025-04-28
  • Android Studio HUD 实现指南

    本文将会以实例来详细阐述如何在 Android Studio 中使用 HUD 功能实现菊花等待指示器的效果。 一、引入依赖库 首先,我们需要在 build.gradle 文件中引入…

    编程 2025-04-27
  • Android和Vue3混合开发方案

    本文将介绍如何将Android和Vue3结合起来进行混合开发,以及其中的优势和注意事项。 一、环境搭建 在进行混合开发之前,需要搭建好相应的开发环境。首先需要安装 Android …

    编程 2025-04-27
  • Android Java Utils 可以如何提高你的开发效率

    Android Java Utils 是一款提供了一系列方便实用的工具类的 Java 库,可以帮助开发者更加高效地进行 Android 开发,提高开发效率。本文将从以下几个方面对 …

    编程 2025-04-27
  • Android JUnit测试完成程序自动退出决方法

    对于一些Android JUnit测试的开发人员来说,程序自动退出是一个经常面临的困扰。下面从多个方面给出解决方法。 一、检查测试代码 首先,我们应该仔细检查我们的测试代码,确保它…

    编程 2025-04-25
  • Android Activity启动流程

    一、Activity概述 Android应用程序是由许多Activity组成的。一个Activity代表一个屏幕上的窗口。用户与应用程序交互时,Activity会接收用户的输入并处…

    编程 2025-04-25
  • Android单元测试详解

    一、单元测试概述 单元测试是指对软件中的最小可测试单元进行检查和验证。在Android开发中,单元测试是非常重要的一环,可以保证代码的质量、稳定性以及可维护性。 在Android开…

    编程 2025-04-25
  • Android WebView加载本地HTML

    一、介绍 Android WebView是一个内置的浏览器,它允许开发人员在应用中嵌入网页。使用WebView可以轻松地在应用程序中显示本地或远程的HTML内容。本篇文章将重点讲述…

    编程 2025-04-24
  • Android Wakelock详解

    一、什么是Android Wakelock? 在Android应用开发中,Wakelock被广泛应用于保持屏幕或CPU处于唤醒状态,以便应用程序可以继续执行后台任务,直到任务完成。…

    编程 2025-04-24

发表回复

登录后才能评论