27、从头学Android之多媒体--使用VideoView播放视频

VideoView


常用方法:

方法名称

描述

public void setVideoPath (String path)

加载path路径的文件

public void setVideoURI (Uri uri)

加载uri所对应的视频

public void start ()

开始

public void seekTo (int msec)

定位

public void pause ()

暂停

public void stop()

停止

public void setMediaController (MediaController controller)

设置MediaController对象

关于MediaController类


这个类也是android.widget包下的,它是一个包含控件MediaPlayer多媒体播放的组件,它含有“播放”、暂停、”、“快倒”、“快进”和进步条的一个组件

构造方法

方法名称

描述

public MediaController (Context context, AttributeSet attrs)

通过Context对象和AttributeSet对象来创建MediaController对象

public MediaController (Context context, boolean useFastForward)

通过Context对象和指定是否允许用户控制进度。也就是是否有“快进”、“快退”按钮。如果设置为false就不会显示显示(如下图片一)

public MediaController (Context context)

通过Context来创建MediaController对象

常用方法

方法名称

描述

public void hide()

设置隐藏MediaController

public void show()

设置显示MediaController

public void show(int timeout)

设置MediaController显示的时间以毫秒计算。如果设置为0则一直到调用hide()方法才隐藏

public void setMediaPlayer (MediaController.MediaPlayerControl player)

设置MediaPlayer使之与要绑定的控件绑定在一起其参数是一个MediaController.MediaPlayerControl 静态接口的对象,(而VideoView是MediaController.MediaPlayerControl静态接口的子实现类,这就使得我们可以更好的控制我们的视频播放进度)

图片一

如果用public MediaController (Contextcontext, boolean useFastForward)构造方法来创建MediaController对象指定useFastForward=false就显示成这样的效果

实现效果:show和hide两个按钮用于控制MediaController的显示与隐藏


编码实现:

布局文件代码:

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

Activity代码:

package com.jiahui.videoview; import java.io.File; import android.app.Activity; import android.graphics.PixelFormat; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.MediaController; import android.widget.Toast; import android.widget.VideoView; public class VideoViewDemoActivity extends Activity { private VideoView videoView; private Button btnHide, btnShow; MediaController mediaController; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFormat(PixelFormat.TRANSLUCENT); setContentView(R.layout.main); videoView = (VideoView) this.findViewById(R.id.video); btnShow = (Button) this.findViewById(R.id.btnShow); btnHide = (Button) this.findViewById(R.id.btnHide); // 使用这种方式创建MediaController将不会显示“快进”和“快退”两个按钮 // mediaController = new MediaController(this,false); mediaController = new MediaController(this); File videoFile = new File("/mnt/sdcard/movie.3gp"); // 先判断这个文件是否存在 if (videoFile.exists()) { System.out.println("文件存在"); videoView.setVideoPath(videoFile.getAbsolutePath()); System.out.println(videoFile.getAbsolutePath()); // 设置VideView与MediaController建立关联 videoView.setMediaController(mediaController); // 设置MediaController与VideView建立关联 mediaController.setMediaPlayer(videoView); // 让VideoView获取焦点 videoView.requestFocus(); // 开始播放 videoView.start(); } else { Toast.makeText(this, "文件不存在", Toast.LENGTH_LONG).show(); } btnShow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mediaController != null) { // 使用0的话就一直显示直到调用hide() mediaController.show(0); } } }); btnHide.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mediaController != null) { mediaController.hide(); } } }); } }
如需转载引用请注明出处:http://blog.csdn.net/jiahui524

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值