使用VideoView全屏播放视频文件
来源:互联网 发布:淘宝刷单注意事项 编辑:程序博客网 时间:2024/05/17 17:45
最近在做一个app项目,涉及了图片和视频文件的预览功能,其中视频文件的预览采用的是android提供的VideoView组件,通过该组件实现视频播放比较简单,但是碰到了视频文件无法全屏播放的问题。下面对通过VideoView实现视频文件播放以及解决无法全屏播放的问题做个总结。
使用VideoView播放视频文件的步骤
- 在布局文件中创建VideoView组件
<LinearLayout android:id="@+id/id_preViewPanel" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <VideoView android:id="@id/id_CameraPreView" android:layout_width="wrap_content" android:layout_height="wrap_content" > </VideoView> </LinearLayout>
- 然后在Activity中获取VideoView组件
- 用setVideoPath(String path)或setVideoURI(URI uri)方法加载要播放的视频资源
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_previewvideo);Intent intent = getIntent();String fileName = intent.getStringExtra(FILE_NAME);File imageFile = new File(fileName);if (!imageFile.exists()) {Log.d(TAG, "can\'t find video file, fileName:" + imageFile.toString());returnPrevious(RESULT_CANCELED);return;}//获取VideoView组件mVideoView = (VideoView)findViewById(R.id.id_CameraPreView);//通过setVideoPath()方法加载要播放的视频mVideoView.setVideoPath(imageFile.toString());}
最后调用start()方法播放视频<p name="code" class="html">//当Activity由暂停状态恢复为活动状态时调用protected void onResume() {//调用start()方法播放视频mVideoView.start();super.onResume();}</p>
实现视频文件全屏显示
过上述步骤即可实现播放视频文件的功能,但是播放时,视频文件往往无法全屏显示(视频文件完整显示了,但屏幕中会有一块空白区域),解决这个问题,需要我们自定义一个继承自VideoView的组件,并重写OnMeasure()方法。
- 首先实现一个继承自VideoView的MyVideo组件
package com.supcon.scerms.media;import android.content.Context;import android.util.AttributeSet;import android.widget.VideoView;public class MyVideoView extends VideoView {public MyVideoView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}public MyVideoView(Context context, AttributeSet attrs) {super(context, attrs);}public MyVideoView(Context context) {super(context);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {// TODO Auto-generated method stubint width = getDefaultSize(0, widthMeasureSpec);int height = getDefaultSize(0, heightMeasureSpec);setMeasuredDimension(width, height);}}
- 将布局文件中android提供的VideoView组件替换为自定义的MyVideoView组件
<LinearLayout android:id="@+id/id_preViewPanel" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <com.supcon.scerms.media.MyVideoView android:id="@id/id_CameraPreView" android:layout_width="wrap_content" android:layout_height="wrap_content" > </com.supcon.scerms.media.MyVideoView> </LinearLayout>
0 0
- 使用VideoView全屏播放视频文件
- 使用VideoView播放视频文件
- Android VideoView播放 项目中的 视频文件 自动横屏 全屏播放
- videoview全屏播放
- VideoView-全屏播放
- videoview全屏播放
- android 利用VideoView播放视频文件
- Android VideoView播放MP4视频文件
- 自定义videoview实现全屏播放
- 自定义VideoView全屏显示播放
- android 用VideoView播放本地视频文件
- VideoView播放SD卡上指定视频文件
- 使用VideoView播放视频
- 使用VideoView播放视频
- 使用VideoView播放视频
- 使用VideoView播放视频
- 使用VideoView播放视频
- 使用videoview播放视频
- 关于Android 图片加载几个成熟的框架
- 代码实现从某个表中查询数据插入到另一个表中
- mysqldump工具导入导出数据库
- 不再以讹传讹,GET和POST的真正区别
- easyui-messager消息窗口组件
- 使用VideoView全屏播放视频文件
- SQL优化34条
- php入门(数据库)
- 归类说明stackoverflow-ios
- 数据结构与算法-----选择排序
- 【FAQ】Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64
- 从头认识java-11.5 扫描输入(2)-scanner的边界与使用正则表达式扫描
- 详解文本属性Attributes
- 获取ResultSet记录数