eclipse中自定义videoview类_android控件之VideoView建立自己的播放器

9ae3e049dd112b202d6ca1ac89bcd3ca.png

简介

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

实例

1.布局文件

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

/>

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

}

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值