全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

android多媒体类VideoView使用方法详解

一、概述

VideoView类将视频的显示和控制集于一身,我们可以借助它完成一个简易的视频播放器。VideoView和MediaPlayer也比较相似。

二、VideoView的使用方法

它主要有以下几种常用方法

步骤:

1.指定视频文件的路径,
2.接下来调用start()方法就可以开始播放视频,pause()方法就会暂停播放,resume()方法就会重新播放

注:获取视频文件也需要运行时权限,所有相关逻辑也需要写。
      最后不要忘记在AndroidManifest.xml文件中声明用到的权限

下面是一个比较简单的播放、暂停、重新播放的小demo

一、xml文件中的代码

<?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" 
  android:orientation="vertical" 
  tools:context="com.example.lk.playvideotest.MainActivity"> 
 
  <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
    <Button 
      android:id="@+id/play" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Play" 
      android:textAllCaps="false"/> 
    <Button 
      android:id="@+id/pause" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Pause" 
      android:textAllCaps="false"/> 
    <Button 
      android:id="@+id/replay" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="RePlay" 
      android:textAllCaps="false"/> 
  </LinearLayout> 
  <VideoView 
    android:id="@+id/video_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
 
</LinearLayout> 

 二、activity中的代码

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 
  private VideoView videoView; 
 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    videoView = (VideoView) findViewById(R.id.video_view); 
    Button play = (Button) findViewById(R.id.play); 
    Button pause = (Button) findViewById(R.id.pause); 
    Button replay = (Button) findViewById(R.id.replay); 
 
    play.setOnClickListener(this); 
    pause.setOnClickListener(this); 
    replay.setOnClickListener(this); 
    if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { 
      ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); 
    } else { 
      initVideoPath(); 
    } 
  } 
 
  private void initVideoPath() { 
    File file = new File(Environment.getExternalStorageDirectory(), "movie.mp4"); 
    videoView.setVideoPath(file.getPath());//指定视频文件的路径 
  } 
 
  @Override 
  public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
 
    switch (requestCode) { 
      case 1: 
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
          initVideoPath(); 
        } else { 
          Toast.makeText(this, "拒绝权限将无法使用程序", Toast.LENGTH_SHORT).show(); 
          finish(); 
        } 
        break; 
      default: 
 
    } 
  } 
 
  @Override 
  public void onClick(View v) { 
    switch (v.getId()) { 
      case R.id.play: 
        if (!videoView.isPlaying()) { 
          videoView.start();//开始播放 
        } 
        break; 
      case R.id.pause: 
        if (!videoView.isPlaying()) { 
          videoView.pause();//暂停播放 
        } 
        break; 
      case R.id.replay: 
        if (!videoView.isPlaying()) { 
          videoView.resume();//重新播放 
        } 
        break; 
    } 
 
  } 
 
  @Override 
  protected void onDestroy() { 
    super.onDestroy(); 
    if (videoView != null) { 
      videoView.suspend();//将VideoView所占用的资源释放掉 
    } 
  } 
} 

三、声明权限

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

VideoView并不是一个万能的视频播放工具类,如果使用它,编写一个功能十分强大的视频播放器是不太现实的。VideoView适用于一些游戏的片头动画,或者某个应用的视频宣传。


# android  # 多媒体类  # VideoView  # Android UniversalVideoView实现视频播放器  # Android音视频开发之VideoView使用指南  # Android自定义videoview仿抖音界面  # Android原生视频播放VideoView的使用  # Android编程实现VideoView循环播放功能的方法  # Android多媒体之VideoView视频播放器  # Android VideoView类实例讲解  # Android使用VideoView播放本地视频和网络视频的方法  # android使用videoview播放视频  # Android中VideoView音视频开发的实现  # 是一个  # 就会  # 视频文件  # 视频播放器  # 不太  # 适用于  # 我们可以  # 几种  # 要写  # 不要忘记  # 就可以  # 也需  # 播放工具  # 主要有  # 使用它  # layout_height  # orientation  # app  # xmlns  # match_parent 


相关文章: 详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何彻底卸载建站之星软件?  用v-html解决Vue.js渲染中html标签不被解析的问题  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  宁波免费建站如何选择可靠模板与平台?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  如何快速辨别茅台真假?关键步骤解析  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  香港服务器选型指南:免备案配置与高效建站方案解析  活动邀请函制作网站有哪些,活动邀请函文案?  如何在万网自助建站平台快速创建网站?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  大连网站设计制作招聘信息,大连投诉网站有哪些?  C#怎么使用委托和事件 C# delegate与event编程方法  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  建站之星后台密码遗忘或太弱?如何重置与强化?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  ,网站推广常用方法?  ,南京靠谱的征婚网站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  建站主机选购指南:核心配置与性价比推荐解析  如何在企业微信快速生成手机电脑官网?  C++如何使用std::optional?(处理可选值)  网站设计制作公司地址,网站建设比较好的公司都有哪些?  宝塔面板如何快速创建新站点?  文字头像制作网站推荐软件,醒图能自动配文字吗?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  临沂网站制作企业,临沂第三中学官方网站?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  制作公司内部网站有哪些,内网如何建网站?  在线制作视频的网站有哪些,电脑如何制作视频短片?  长沙企业网站制作哪家好,长沙水业集团官方网站?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  成都网站制作报价公司,成都工业用气开户费用?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  如何选择香港主机高效搭建外贸独立站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  零服务器AI建站解决方案:快速部署与云端平台低成本实践  完全自定义免费建站平台:主题模板在线生成一站式服务  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  音乐网站服务器如何优化API响应速度?  如何规划企业建站流程的关键步骤?  如何确保FTP站点访问权限与数据传输安全? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。