全网整合营销服务商

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

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

Android多媒体之VideoView视频播放器

本文实例为大家分享了视频播放器的两种方式,供大家参考,具体内容如下

1)、SurfaceView
在布局文件中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_media_play"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 android:orientation="vertical"
 tools:context="com.zking.android_contentresolve.MediaPlayActivity">


 <SurfaceView
  android:layout_width="match_parent"
  android:layout_height="300dp"
  android:id="@+id/sv_media_surface"
  />



 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  >
  <SeekBar
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:id="@+id/seekBar"
   android:layout_weight="1" />

  <ImageButton
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@android:drawable/ic_media_play"
   android:onClick="isPlayOrPause"
   />
 </LinearLayout>
</LinearLayout>

在Activity里面和播放内存卡上音乐的代码差不多,只是视频多了个显示内容,关键代码就是这三条

//播放内存上的视频
mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/Movies/sister.mp4"));

//准备(内存卡)
mediaPlayer.prepare();

//将媒体播放器捕捉的画面展示在SurfaceView 上
mediaPlayer.setDisplay(sv_media_surface.getHolder());


但是没看前面博客的筒子可能会觉得看不懂,所以还是把完整的代码粘贴出来

public class MediaPlayActivity extends AppCompatActivity {
 private SeekBar seekBar;
 private MediaPlayer mediaPlayer;
 private SurfaceView sv_media_surface;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_media_play);
  seekBar = (SeekBar) findViewById(R.id.seekBar);
  sv_media_surface = (SurfaceView) findViewById(R.id.sv_media_surface);

  seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
   @Override
   public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

   }

   @Override
   public void onStartTrackingTouch(SeekBar seekBar) {

   }

   @Override
   public void onStopTrackingTouch(SeekBar seekBar) {
    //获取拖动结束后的位置
    int progress=seekBar.getProgress();
    //跳转到某个位置播放
    mediaPlayer.seekTo(progress);
   }
  });
 }

 public void isPlayOrPause(View view){
  final ImageButton imageButton= (ImageButton) view;

  if(mediaPlayer==null){//代表第一次播放音乐

   //播放内存卡内的音频
   mediaPlayer=new MediaPlayer();
   //设置类型
   mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
   //设置音源
   try {
    //播放内存上的视频
    mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/Movies/sister.mp4"));
    //准备(内存卡)
    mediaPlayer.prepare();

    //将媒体播放器捕捉的画面展示在SurfaceView 上
    mediaPlayer.setDisplay(sv_media_surface.getHolder());

    //必须在播放前加载音频文件(异步准备)
//    mediaPlayer.prepareAsync();

   } catch (IOException e) {
    e.printStackTrace();
   }

   mediaPlayer.start();
   //把图标改成暂停的图标(这里的暂停图标就是播放时的状态)
   imageButton.setImageResource(android.R.drawable.ic_media_pause);

   //获取音乐的总时长
   int duration=mediaPlayer.getDuration();
   //设置进度条的最大值为音乐的总时长
   seekBar.setMax(duration);

   new MyThread();
  }else if(mediaPlayer.isPlaying()){//正在播放音乐
   mediaPlayer.pause();
   //把图标改成播放的图标(暂停状态)
   imageButton.setImageResource(android.R.drawable.ic_media_play);
  }else{
   mediaPlayer.start();
   imageButton.setImageResource(android.R.drawable.ic_media_pause);
  }

 }

 class MyThread extends Thread{
  @Override
  public void run() {
   super.run();
   while(seekBar.getProgress()<seekBar.getMax()){
    //获取当前音乐播放的位置
    int currentPosition=mediaPlayer.getCurrentPosition();
    //让进度条跟着时间走
    seekBar.setProgress(currentPosition);

   }
  }
 }


}

2)、VideoView,如果在项目中,仅仅只是播放视频的话,这种方式会比较简单,但是如果是要做视频播放器的话,还是使用第一种方法

布局文件

 <VideoView
  android:layout_width="match_parent"
  android:layout_height="300dp"
  android:id="@+id/vv_main_vedio"
  />

Activity

public class VedioActivity extends AppCompatActivity {

 private VideoView vv_main_vedio;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_vedio);
  vv_main_vedio = (VideoView) findViewById(R.id.vv_main_vedio);

  //给videoView设置播放来源
  vv_main_vedio.setVideoPath("file://mnt/sdcard/Movies/sister.mp4");

  //实例化媒体控制器
  MediaController mediaController=new MediaController(this);

  //给activity_vedio设置控制器
  vv_main_vedio.setMediaController(mediaController);

  mediaController.setMediaPlayer(vv_main_vedio);

 }
}


VideoView通过与MediaController类结合使用,开发者可以不用自己控制播放与暂停。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # VideoView  # 视频播放器  # Android UniversalVideoView实现视频播放器  # Android音视频开发之VideoView使用指南  # Android自定义videoview仿抖音界面  # Android原生视频播放VideoView的使用  # android多媒体类VideoView使用方法详解  # Android编程实现VideoView循环播放功能的方法  # Android VideoView类实例讲解  # Android使用VideoView播放本地视频和网络视频的方法  # android使用videoview播放视频  # Android中VideoView音视频开发的实现  # 媒体播放器  # 内存卡  # 时长  # 进度条  # 两种  # 要做  # 种方法  # 拖动  # 大家分享  # 正在播放  # 看不懂  # 具体内容  # 值为  # 大家多多  # 跳转到  # 音乐播放  # 卡上  # 加载  # 结束后 


相关文章: 宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何快速生成ASP一键建站模板并优化安全性?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  建站主机CVM配置优化、SEO策略与性能提升指南  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  教学论文网站制作软件有哪些,写论文用什么软件 ?  建站之星安装提示数据库无法连接如何解决?  青岛网站建设如何选择本地服务器?  建站VPS能否同时实现高效与安全翻墙?  如何通过虚拟主机快速完成网站搭建?  c# 在高并发场景下,委托和接口调用的性能对比  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  网站制作报价单模板图片,小松挖机官方网站报价?  建站主机选购指南:核心配置与性价比推荐解析  制作证书网站有哪些,全国城建培训中心证书查询官网?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  建站主机与虚拟主机有何区别?如何选择最优方案?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  家具网站制作软件,家具厂怎么跑业务?  如何选择服务器才能高效搭建专属网站?  如何高效配置香港服务器实现快速建站?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  建站之家VIP精选网站模板与SEO优化教程整合指南  建站之星如何优化SEO以实现高效排名?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  广州美橙建站如何快速搭建多端合一网站?  建站之星伪静态规则如何正确配置?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  制作网站怎么制作,*游戏网站怎么搭建?  如何在橙子建站上传落地页?操作指南详解  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何在宝塔面板创建新站点?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何选择网络建站服务器?高效建站必看指南  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  h5网站制作工具有哪些,h5页面制作工具有哪些?  制作销售网站教学视频,销售网站有哪些?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  制作网站公司那家好,网络公司是做什么的?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  网站按钮制作软件,如何实现网页中按钮的自动点击?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  如何快速生成橙子建站落地页链接?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  济南专业网站制作公司,济南信息工程学校怎么样?  如何快速搭建FTP站点实现文件共享?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  建站之星伪静态规则如何设置? 

您的项目需求

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