文海相逢,诗歌相送,彼此留下的是最美丽的文字,是最真诚的笑靥。有些人,在与不在,他都在你的生命中留下了最华美的荏苒。

目录结构

  • 前言
  • MediaController类实现视频播放器
    • 1. 布局界面
    • 2. 加载视频并播放
    • 3. 权限申请

前言

本篇文章主要是使用VideoView控件和Android提供的MediaController类来实现简易视频播放器。使用MediaController类的好处是:不需要手动的去添加控制按钮,就可以来操作视频。如下图所示:

MediaController类实现视频播放器

1. 布局界面

添加VideoView组件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><VideoViewandroid:id="@+id/video_view"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center"/></LinearLayout>

2. 加载视频并播放

在实现逻辑中也获取了videoView各种监听事件,主要用于对当前视频机型扩展,比如:循环,完成提示,异常监听等。

package com.xiaozeng.videoviewdemo1;
。。。
public class MainActivity extends AppCompatActivity{private VideoView videoView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取控件对象videoView = findViewById(R.id.video_view);initVideoPath();}private void initVideoPath(){/*// 加载指定的视频文件File file = new File(Environment.getExternalStorageDirectory(),"/out.mp4");videoView.setVideoPath(file.getPath());//指定视频文件的路径*/Uri uri = Uri.parse("https://img.qunliao.info/4oEGX68t_9505974551.mp4");videoView.setVideoURI(uri);MediaController mediaController = new MediaController(this);videoView.setMediaController(mediaController);//VideoView和MediaController关联videoView.requestFocus(); //获取焦点videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer mp) {Log.i("通知","完成");Toast.makeText(MainActivity.this,"播放完成",Toast.LENGTH_SHORT).show();}});videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mp) {mp.setLooping(true);}});videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {@Overridepublic boolean onError(MediaPlayer mp, int what, int extra) {Log.i("通知","播放中出现错误");return false;}});}@Overrideprotected void onDestroy() {super.onDestroy();if(videoView != null ){videoView.suspend();}}
}

3. 权限申请

因为使用的是网络资源,所以需要获取权限

<uses-permission android:name="android.permission.INTERNET"/>

快运行一下你的demo吧!

MediaController类实现视频播放器相关推荐

  1. MediaPlayer+SurfaceView实现视频播放器

    我这个人走得很慢,但是我从不后退. 之前给大家分享过使用MediaController类实现视频播放器,今天呢给大家分享可以自定义的视频播放器,那就是使用MediaPlayer+SurfaceView ...

  2. 测试:视频播放器、视频通话、视频类网站 测试点

    文章目录 前言 一.视频播放器测试用例 二.视频通话测试用例 三.视频网站测试用例 参考文章 前言 百度和字节面试被问到视频相关的测试用例,作为一个研究方向是视频编解码的人来说,这个问题回答不好,着实 ...

  3. (原创)视频播放器的手势控制工具类

    最近在做一个视频播放器 现在市场上,一个比较完善的视频播放器 大概具有以下功能: 快进.快退.声音.亮度控制 这一次就根据这几个基础的功能 通过系统的手势控制类GestureDetector来完成 做 ...

  4. 强大的第三方视频播放器。

    近来静极思动,决定写一堆博客. 没别的意思,单纯的想**** //小白使用文档 https://shimo.im/docs/xj5F85W1gqEEBXRJ https://shimo.im/docs ...

  5. 零基础用Android Studio实现简单的本地视频播放器

    用Android Studio的VideoView组件实现简单的本地视频播放器 一.创建Android Studio项目 二.在界面布局文件activity_main.xml中定义VideoView组 ...

  6. 安卓开发之视频播放器

    首先送各位有缘看到这篇文章的朋友们一句话:努力,总会有收获! 下面开始正题: 视频播放器,谷歌提供了布局控件和api. 布局控件的名字叫做VideoView,该控件也有自己的类,实例化一个该控件对象后 ...

  7. android音视频播放器开发百度云,Android 播放端 SDK

    1 概述 PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 Android ...

  8. Android的媒体播放器——简易视频播放器(详解)

    一.案例效果 二.主界面的设计与功能 2.1 案例效果 2.2 布局界面 activity_main.xml 参考代码: <?xml version="1.0" encodi ...

  9. android 音乐视频播放器(github上十二款最著名的Android播放器开源项目)

    1.ijkplayer 项目地址: https://github.com/Bilibili/ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Andr ...

最新文章

  1. 文件处理(如果文件存在则追加,不存在则生成多级文件夹以及txt目录)
  2. 牛客网-阿里巴巴2017
  3. 聊聊Batch Normalization在网络结构中的位置
  4. 央视网报道“手机就能打到拖拉机”,网友直呼“想种地了”
  5. hive -e和hive -f的区别(转)
  6. JS如何监听动画结束
  7. python中设置时间格式--模块datetime中日期和时间格式的参数
  8. server2003 IIS 错误 解决
  9. 初识Web Component
  10. C# 各种常用集合类型的线程安全版本
  11. 宽屏系统上播放幻灯片的设想
  12. 寻找两个有序数组最小相同元素---JavaScript--解决方法
  13. php 三消算法,三消游戏关卡设计教程(初级篇)——基本地形设计
  14. 产品经理,设计师,前端工程师必备的绘图工具(原型图,思维导图,UML,流程图,架构图)
  15. oracle开方怎么写,excel的开方/平方/次方及根号运算
  16. 小白学习Java必练基础题(一)
  17. canvas-绘制背景
  18. 西游记研究之五:巨人的角逐
  19. android手机连接hdmi,手机hdmi转接线的介绍以及连接方法
  20. 关于关联表用code还是id的见解

热门文章

  1. 怎么保证拼多多网店平稳运营
  2. SQL Review - 如何在 MySQL 中创建 ERD
  3. 服务器简介(二):服务器安全威胁简介、漏洞和补丁简介
  4. linux恢复到某一时间点,使用回滚磁盘功能如何实现将一块云盘的数据恢复到之前的某一时刻...
  5. win10如何将桌面状态栏(任务栏)软件图标设置为居中
  6. 软件图标固定到任务栏,点击之后出现两个图标--简单解决办法
  7. 云计算概论 -- 云的基本概念和模型
  8. OpenCV 形态学操作
  9. 计算机毕业设计(附源码)python智慧后勤系统
  10. Win10 如何设置开机密码?又如何更改开机密码为空密码?