videoview 实现简单播放器

本文介绍如何使用Android的VideoView和MediaController实现视频播放控制功能,包括加载视频、播放、暂停等操作,并展示了具体的实现代码及布局文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继承关系


public class VideoView extends SurfaceView
implements MediaController.MediaPlayerControl
java.lang.Object
         android.view.View
                   android.view.SurfaceView
                            android.widget.VideoView


常用方法:
public void setVideoPath (String path)   加载path路径的文件
public void setVideoURI (Uri uri)  加载uri所对应的视频
public void start ()  开始
public void pause ()  暂停
public void stop() 停止
public void resume () 恢复
public void seekTo (int msec)  定位
public void setMediaController (MediaController controller)  设置MediaController对象




public class MediaController extends FrameLayout
        
MediaController
继承关系:
java.lang.Object
android.view.View
         android.view.ViewGroup
                   android.widget.FrameLayout
                            android.widget.MediaController
常用方法:
public void hide ()  从屏幕中移除控制器。
public boolean isShowing ()   判断媒体控制器是否处于可见状态
public void show (int timeout)   在屏幕上显示这个控制器。它将在闲置’超时 (timeout)’毫秒到达后自动消失。
  参数
  timeout 这个参数以毫秒为单位。如果设置为0将一直显示到调用hide()函数为止。
public void show ()   在屏幕上显示这个控制器。它将在3秒以后自动消失。
public void setMediaPlayer (MediaController.MediaPlayerControl player) 
设置MediaPlayer使之与要绑定的控件绑定在一起其参数是一个MediaController.MediaPlayerControl 静态接口的对象,(而VideoView是MediaController.MediaPlayerControl静态接口的子实现类,这就使得我们可以更好的控制我们的视频播放进度)
 

实现代码:

package com.example.videotest;
import java.io.File;

import android.app.Activity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Environment;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;

public class MainActivity extends Activity {

	private VideoView videoView;
	MediaController mediaController;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//getWindow().setFormat(PixelFormat.TRANSLUCENT);
		setContentView(R.layout.activity_main);

		videoView = (VideoView)findViewById(R.id.video);
		mediaController = new MediaController(this);
		
		String vfile = Environment.getExternalStorageDirectory()+"/test_1.mp4";
		//File videoFile = new File("/storage/sdcard0/test_1.mp4");

		// 先判断这个文件是否存在
		if (vfile!=null) {
			//videoView.setVideoPath(videoFile.getAbsolutePath());
			videoView.setVideoPath(vfile);
			// 设置VideView与MediaController建立关联
			videoView.setMediaController(mediaController);
			// 设置MediaController与VideView建立关联
			mediaController.setMediaPlayer(videoView);

			// 让VideoView获取焦点
			videoView.requestFocus();
			// 开始播放
			videoView.start();
		} else {
			Toast.makeText(this, "文件不存在", Toast.LENGTH_LONG).show();
		}
	}
}


xml:

<?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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值