【Android开发】多媒体应用开发-使用VideoView播放视频-阿里云开发者社区

开发者社区> 光仔december> 正文

【Android开发】多媒体应用开发-使用VideoView播放视频

简介:
+关注继续查看
在Android中,提供了VideoView组件用于播放视频文件。想要使用VideoView组件播放视频,首先需要在布局文件中创建该组件,然后在Activity中获取该组件,并应用其setVideoPath()方法或setVideoURI()方法加载要播放的视频,最后调用start()方法来播放视频。另外,VideoView组件还提供了stop()和pause()方法,用于停止或暂停视频的播放。

在布局文件中创建VedioView组件的基本语法如下:
<VideoView 
    属性列表>
</VideoView>

VideoView组件支持的XML属性如下表所示:
android:id:用于设计组件的ID
android:background:用于设置背景,可以设置背景图片,也可以设置背景颜色
android:layout_gravity:用于设置对其方式
android:layout_width:用于设置宽度
android:layout_height:用于设置高度

在Android中还提供一个可与VideoView组件结合使用的MediaController组件。MediaController组件用于通过图形控制界面来控制视频的播放

下面通过一个实例来说明如何使用VedioView和MediaController来播放视频

我们在虚拟机的SD卡/Movies路径中放入我们要测试播放的视频文件my.mp4,如图-10.13.a.jpg

界面布局文件
res/layout/main.xml:
<?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/ll1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    	<VideoView android:id="@+id/video"
    	    android:background="@drawable/ic_launcher"
    	    android:layout_width="match_parent"
    	    android:layout_height="wrap_content"
    	    android:layout_gravity="center"/>
</LinearLayout>

MainActivity:
package com.example.test;  
  
import java.io.File;


import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
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 video;
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);
        
        video=(VideoView)findViewById(R.id.video);
       //判断sd卡是否存在 
        String SdPath="/sdcard";
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
        	//如果SD卡存在,则获取根目录
        	SdPath=Environment.getExternalStorageDirectory().toString();
        }
        File file=new File(SdPath+"/Movies/my.mp4");//获取SD卡上要播放的文件
        MediaController mc=new MediaController(MainActivity.this);
        if(file.exists()){//判断要播放的视频是否存在
        	video.setVideoPath(file.getAbsolutePath());//指定要播放的视频
        	video.setMediaController(mc);//设置VedioView与MediaController相关联
        	video.requestFocus();//让VedioView获得焦点
        	try {
			video.getBackground().setAlpha(0);//将背景图片设为透明
        		video.start();//开始播放视频
			} catch (Exception e) {
				// TODO: handle exception
			}
        	
        	//为VideoView添加完成事件监听器
        	video.setOnCompletionListener(new OnCompletionListener() {
				
				@Override
				public void onCompletion(MediaPlayer mp) {
					//弹出消息提示框显示播放完毕
					Toast.makeText(MainActivity.this, "视频播放完毕", Toast.LENGTH_SHORT).show();
				}
			});
        	
        }else{
        	//弹出消息提示框显示文件不存在
			Toast.makeText(MainActivity.this, "要播放的视频文件不存在!", Toast.LENGTH_SHORT).show();
        }
    }
}  



在AndroidManifest.xml配置文件中的Activity配置中加入强制横屏属性
<activity
            android:name=".MainActivity"
            android:screenOrientation="landscape"
            android:label="@string/app_name" >
......

运行之后的效果如图


转载请注明出处:http://blog.csdn.net/acmman/article/details/46551075

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用IntelliJ IDEA开发SpringMVC网站(一)开发环境
原文:使用IntelliJ IDEA开发SpringMVC网站(一)开发环境 摘要 主要讲解初期的开发环境搭建,Maven的简单教学。 IDEA Spring MVC 目录[-] 文章已针对IDEA 15做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源码。
1629 0
Android开发13——内容提供者ContentProvider的基本使用
  一、ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。ContentProvider为存储和获取数据提供了统一的接口。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences
914 0
ExpandableListView简单应用及listview模拟ExpandableListView
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px; line-height:26px">   首先我们还是来看一些案例,还是拿搜狐新闻客户端,因为我天天上下班没事爱看这个东东,上班又没时间看新闻,上下班路途之
1258 0
使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理
原文:使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理 摘要 通过对博客文章的管理,实现外键操作。 目录[-] 八、博客文章管理 1、查看文章 2、添加博客        3、查看博文详情 4、修改博客内容 5、删除博客文章 九、尾声         1、如何部署 2、进一步的学习 3、ENDING 转载请注明出处:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) 。
1071 0
使用MMX/SSE汇编指令集优化视频开发
1、汇编指令集 目前大部分的PC机采用的都是Intel或者AMD的CPU,其支持的多媒体汇编指令有: MMX:多媒体扩展指令(MultiMedia eXtention),该指令由Intel在1996年为Pentium处理器开发,包括了57条多媒体指令,可以i一次处理多个数据。
1640 0
在windows平台下使用vscode当golang开发环境的配置
一、使用的平台与软件: 1、window 7 或者10,注意必须是64位,否则不能使用delve debug 2、go1.11.5.windows-amd64.msi 3、Git-2.20.1-64-bit.exe 4、VSCodeUserSetup-x64-1.31.1.exe 二、安装git,golang,vscode git软件全部使用缺省配置即可,安装完成后也不需要做太多配置; golang一般缺省安装在C:\go下 重点是需要设置GOPATH的环境变量。
2810 0
iOS翻页视图控制器UIPageViewController的应用(一)
iOS翻页视图控制器UIPageViewController的应用
24 0
+关注
光仔december
目前致力于JavaEE(struts/hibernate/spring/MyBatis等框架)、数据库(Mysql/oracle)、静态页面(Html/Css)技术和脚本(JavaSript/JQuery/Ajax)等技术方面的研究
497
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载