`
woshixushigang
  • 浏览: 576134 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

android控件之VideoView建立自己的播放器

阅读更多

android控件之VideoView建立自己的播放器

 

 简介

  用来播放视频文件。该VideoView类可以加载各种来源的图像(如资源或内容提供商),需要计算它从视频测量,以便它可以在任何布局管理器使用,并提供诸如缩放和着色的各种显示选项。在其他的平台上面可能VideoPlayer开发是一个比较有挑战性的工作,但是在Android上面VideoPlayer的开发,基本上可以做到傻瓜式啦。本文简单对VideoPlayer的开发进行简单的介绍。

 

实例

1.布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
 
  <VideoView android:id="@+id/videoview"
    android:layout_width="fill_parent"
  android:layout_height="wrap_content"
android:layout_centerInParent="true"
  />
</LinearLayout>

2.Java代码

package com.wjq;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.MediaController;
import android.widget.VideoView;
public class VideoViewDemo extends Activity implements MediaPlayer.OnErrorListener,MediaPlayer.OnCompletionListener{
 public static final String TAG = "VideoPlayer";
 private VideoView mVideoView;
 private Uri mUri;
 private int mPositionWhenPaused = -1;

 private MediaController mMediaController;

 /* (non-Javadoc)
  * @see android.app.Activity#onCreate(android.os.Bundle)
  */
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.videoview);
  
  this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  
  mVideoView = (VideoView)findViewById(R.id.videoview);

 

//文件路径

  mUri = Uri.parse(Environment.getExternalStorageDirectory() + "/ziranyouli.3gp");

        //Create media controller
        mMediaController = new MediaController(this);

  //设置MediaController
        mVideoView.setMediaController(mMediaController);

 }

 

//监听MediaPlayer上报的错误信息

 @Override
 public boolean onError(MediaPlayer mp, int what, int extra) {
  // TODO Auto-generated method stub
  return false;
 }

 

//Video播完的时候得到通知

 @Override
 public void onCompletion(MediaPlayer mp) {
  this.finish();
 }
 

  //开始
  public void onStart() {
      // Play Video
      mVideoView.setVideoURI(mUri);
      mVideoView.start();

      super.onStart();
     }

 

  //暂停

     public void onPause() {
      // Stop video when the activity is pause.
      mPositionWhenPaused = mVideoView.getCurrentPosition();
      mVideoView.stopPlayback();
      Log.d(TAG, "OnStop: mPositionWhenPaused = " + mPositionWhenPaused);
      Log.d(TAG, "OnStop: getDuration  = " + mVideoView.getDuration());

      super.onPause();
     }

 

     public void onResume() {
      // Resume video player
      if(mPositionWhenPaused >= 0) {
       mVideoView.seekTo(mPositionWhenPaused);
       mPositionWhenPaused = -1;
      }

      super.onResume();
     }

 

}



 

<script type="text/javascript"></script>

<!--end: topics 文章、评论容器-->

<!--done-->

 

分享到:
评论

相关推荐

    android音乐播放器和视频播放器源码

    在Android平台上,开发一款音乐播放器和视频播放器是一项复杂且技术含量高的任务。源码是开发者学习和理解这类应用内部工作原理的重要资源。这里我们深入探讨一下"android音乐播放器和视频播放器源码"所涉及的关键...

    详解Android 视频滚动列表(偷懒型)

    实现 Android 视频滚动列表(偷懒型)需要经过列表的建立、添加播放器、Adapter 的实现和视频播放器的实现等步骤。在这里,我们使用 PLDroidPlayer 库中的 PLVideoTextureView 来实现视频播放器,并在 Adapter 中...

    Android_app模拟测试[归纳].pdf

    Android的虚拟机是Dalvik,不同于Java的JVM(Java Virtual Machine),Dalvik是专门为移动设备优化的轻量级虚拟机,每个应用都有自己的Dalvik实例。 【Activity的启动与生命周期】 Activity可以通过startActivity、...

    疯狂Android讲义源码

     11.1.3 使用VideoView播放视频 435  11.1.4 使用MediaPlayer和  SurfaceView播放视频 436  11.2 使用MediaRecorder录制  音频 439  11.3 控制摄像头拍照 442  11.3.1 通过Camera进行拍照 442  11.3.2 录制...

    android开发资料

    这部分内容深入浅出地介绍了Android程序的设计基础,从项目结构到UI设计,再到事件处理机制,帮助读者建立起对Android应用开发的整体认识。 #### 四、用户界面开发 **4.1 用户界面开发详解** - **4.1.1 用户界面...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    《疯狂Android讲义(第2版)》.(李刚).源代码 疯狂Android讲义目录结构: 第2章、Android应用程序界面设计,即View 2.2、布局管理(Layout):LinearLayout、TableLayout、FrameLayout、RelativeLayout; 2.3、基本...

    Android实例代码

    4.1、建立、配置和使用Activity: 4.2、Activity的回调机制: 4.3、Activity的生命周期: 第5章、使用Intent和IntentFilter进行通信 5.1、Intent对象详解: 5.2、Intent的属性及intent-filter配置:Component...

    android考试资料

    根据提供的文件信息,“android考试资料”这一标题及“android 开发程序选择题以及答案帮助你考试”的描述,本文将围绕Android开发的基础知识点进行详细的解析,旨在帮助读者更好地理解和掌握相关概念,为考试做好...

    安卓系统下如何开发应用程序.txt

    通过上述内容的学习,开发者可以建立起一套完整的 Android 应用开发流程。从环境搭建到应用程序的实现,再到后期的测试与调试,每一步都至关重要。此外,不断深入学习新技术,如 Kotlin、Jetpack 等,也能帮助开发者...

Global site tag (gtag.js) - Google Analytics