Android之使用VideoView播放视频
来源:互联网 发布:周扬青美妆淘宝店名 编辑:程序博客网 时间:2024/05/08 15:59
界面效果
代码
界面代码
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.ygd.myvideotest.MainActivity"> <VideoView android:id="@+id/vv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true"/></RelativeLayout>
程序代码
package com.example.ygd.myvideotest;import android.media.MediaPlayer;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.widget.MediaController;import android.widget.Toast;import android.widget.VideoView;public class MainActivity extends AppCompatActivity { private VideoView videoView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); videoView= (VideoView) findViewById(R.id.vv); //视频控制器 MediaController mediaController=new MediaController(this); videoView.setMediaController(mediaController); //视频文件路径 Uri uri=Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/DCIM/Camera/20150514_133937.mp4"); videoView.setVideoURI(uri); //视频播放结束时的监听 videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { Toast.makeText(MainActivity.this, "播放完毕", Toast.LENGTH_SHORT).show(); } }); //视频播放出错时的监听 videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { Toast.makeText(MainActivity.this, "加载失败", Toast.LENGTH_SHORT).show(); return false; } }); }}
最后不要忘了在清单文件中加读sd卡权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
优化
VideoView控件不支持将视频全屏播放,我们可以通过重写VideoView来实现全屏播放。复制如下代码到MyVideoView.java文件中,将使用VideoView的地方替换成MyVideoView,即可实现下图全屏播放的效果
界面效果
代码
package com.example.ygd.myvideotest;import android.content.Context;import android.media.MediaPlayer;import android.util.AttributeSet;import android.view.KeyEvent;import android.widget.VideoView;public class MyVideoView extends VideoView { public MyVideoView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyVideoView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub0 ~3 K( G/ M( B# I) ` } public MyVideoView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub //重点。 int width = getDefaultSize(0, widthMeasureSpec); int height = getDefaultSize(0, heightMeasureSpec); setMeasuredDimension(width, height); } @Override public void setOnPreparedListener(MediaPlayer.OnPreparedListener l) { // TODO Auto-generated method stub super.setOnPreparedListener(l); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub return super.onKeyDown(keyCode, event); }}
0 0
- Android开发之使用VideoView播放视频
- Android之使用VideoView播放视频
- Android 之使用VideoView播放视频
- Android之VideoView播放视频
- Android之VideoView播放视频
- Android之VideoView播放视频
- Android之VideoView播放视频
- Android播放视频之VideoView
- Android 视频播放之VideoView
- Android--使用VideoView播放视频
- 【Android】使用VideoView播放视频
- Android:使用VideoView播放视频
- Android--使用VideoView播放视频
- 初学Android,多媒体之使用VideoView播放视频(七十七)
- Android之使用VideoView组件播放一个简单的视频
- Android开发 之 videoview循环播放视频
- Android视频播放之ViewPager+VideoView
- Android-多媒体之VideoView视频播放器
- MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法
- 使用控制面板修复OFFICE程序
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- 畸变模型
- Hibernate使用原生的动态sql实现带条件的查询分页功能
- Android之使用VideoView播放视频
- android:theme和app:popupTheme的作用,以及在android 3.0以下不起作用问题的解决
- Elasticsearch大数据处理技术在车牌识别系统中的测试研究
- Django(二) models.py
- Class.forName反射中$的含义
- Gulp教程,前端工作环境的搭建
- PSFTP简单用法
- 关于transient
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)