<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<VideoView android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true" />
</LinearLayout>
VideoPlayer.java文件如下:
package com.simon;
import android.app.Activity;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.MediaController;
import android.widget.VideoView;
import android.content.pm.ActivityInfo;
public class VideoPlayer extends Activity implements MediaPlayer.OnErrorListener,
MediaPlayer.OnCompletionListener {
public static final String TAG = "VideoPlayer";
private VideoView mVideoView;
private Uri mUri;
private int mPositionWhenPaused = -1;
private MediaController mMediaController;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Set the screen to landscape.
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
mVideoView = (VideoView)findViewById(R.id.video_view);
//Video file
mUri = Uri.parse(Environment.getExternalStorageDirectory() + "/1.3gp");
//Create media controller
mMediaController = new MediaController(this);
mVideoView.setMediaController(mMediaController);
}
public void onStart() {
// Play Video
mVideoView.setVideoURI(mUri);
mVideoView.start();
super.onStart();
}
public void onPause() {
// Stop video when the activity is pause.
mPositionWhenPaused = mVideoView.getCurrentPosition();
mVideoView.stopPlayback();
Log.d(TAG, "OnStop: mPositionWhenPaused = " + mPositionWhenPaused);
Log.d(TAG, "OnStop: getDuration = " + mVideoView.getDuration());
super.onPause();
}
public void onResume() {
// Resume video player
if(mPositionWhenPaused >= 0) {
mVideoView.seekTo(mPositionWhenPaused);
mPositionWhenPaused = -1;
}
super.onResume();
}
public boolean onError(MediaPlayer player, int arg1, int arg2) {
return false;
}
public void onCompletion(MediaPlayer mp) {
this.finish();
}
}
分享到:
相关推荐
本例程"Android安卓开发经典设计学习例程源代码-VideoViewSample"是针对VideoView的深入学习和实践,旨在帮助开发者掌握如何有效地在Android应用中集成视频播放功能。以下是关于VideoView及相关知识点的详细解释: ...
在Android应用开发中,VideoView是一个重要的组件,它允许开发者在应用中播放视频。本篇将详细解析"VideoViewSample2"这个源码实例,帮助你深入理解如何在Android中实现视频播放功能。 一、VideoView基础 ...
这里以`VideoView`为例,介绍其基本用法: 1. 在布局文件中添加`VideoView`: ```xml <VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="wrap_content" /> `...
在本例中,我们将使用VideoView来播放RTSP流。 ### 3. 使用VideoView播放RTSP视频 以下是一个基本的步骤来实现这一功能: #### 3.1 在布局文件中添加VideoView 首先,在XML布局文件中添加VideoView,并为其指定一...
这个“Android安卓经典设计学习例程源代码-SufaceVideoTest.rar”压缩包包含了关于SurfaceView与视频播放相关的一个实例项目,非常适合开发者深入理解和实践Android多媒体处理。 首先,SurfaceView是一个特殊的View...
在本例中,我们将重点放在本地视频播放上。 1. **创建项目和布局**: 在Android Studio中新建一个项目,选择"Empty Activity"模板。在`activity_main.xml`布局文件中,设计一个包含视频视图(`VideoView`)和两个...
这个项目“android_手机本地视频列表”显然是一个示例应用,它演示了如何获取设备上的本地视频文件,并通过自定义的`VideoView`控件在`GridView`中进行展示和播放。以下是关于这个项目涉及的关键知识点和实现步骤的...
这里我们以Camera API为例,创建一个SurfaceView作为相机预览界面,并开启录像: ```java Camera camera = Camera.open(); Camera.Parameters parameters = camera.getParameters(); parameters....
在本例中,Media Player被用来加载和播放本地视频文件。 2. **布局设计**: 应用程序界面通常包含一个VideoView或SurfaceView,用于显示视频内容。VideoView是更高级的选项,它集成了Media Controller,提供了播放、...
3. **VideoView/ExoPlayer**: 在列表中播放视频,可以使用VideoView或者更高级的ExoPlayer。VideoView是Android SDK自带的简单播放器,而ExoPlayer是Google推荐的媒体播放库,支持更多的格式和特性,如DASH和HLS流...
4. **布局文件和UI**:在res目录下的layout文件中,我们需要定义一个VideoView或SurfaceView来显示视频。VideoView是直接支持播放视频的视图,而SurfaceView更适合需要高性能渲染的场景。我们还需要设计控制界面,如...
这个功能通常被称为"悬浮窗"或"小窗口模式",它允许视频在屏幕的任何位置自由移动并调整大小,即便用户切换到其他应用,视频仍然可见。 首先,我们要理解浮动窗口的实现原理。在Android中,这主要通过`TYPE_SYSTEM_...
以Glide为例,我们可以轻松地将图片绑定到ImageView,同时它会自动处理内存和磁盘缓存,避免内存溢出。 视频的处理则相对复杂。Android提供了`VideoView`或`ExoPlayer`组件来播放视频。`VideoView`是内置的解决方案...
在这里,我们主要以`ExoPlayer`为例进行讲解,因为它的灵活性更适合复杂的需求。 1. **集成ExoPlayer** 首先,在项目中引入ExoPlayer库。在`build.gradle`文件中添加依赖: ```gradle implementation '...
接下来,创建一个布局文件,包含一个VideoView或者SurfaceView来显示视频。ijkPlayer可以与这两个组件配合工作,但通常推荐使用SurfaceView,因为它的性能更优。下面是一个简单的布局示例: ```xml android:id=...
在本例中,`isPortraint`变量被用来记录当前屏幕是否处于竖屏状态。 在代码中,可以看到`MainActivity`实现了`OnClickListener`、`OnTouchListener`接口,并包含了处理横竖屏切换和显示字幕的相关字段和方法。例如...
【Android视频播放器开发详解——以SuperPlayer为例】 在Android应用开发中,视频播放功能是不可或缺的一部分,尤其在媒体、教育、娱乐等领域更是至关重要。SuperPlayer是一款基于IjkPlayer的高性能视频播放器,它...
例如,文本文件可能使用`TextView`展示,图片文件可能使用`ImageView`,音频或视频文件可能使用`MediaPlayer`或`VideoView`。在本示例中,可能有一个列表视图(`ListView`或`RecyclerView`)来显示不同后缀名的文件...
而诸如android.hardware.Camera、android.media.MediaRecorder、android.media.MediaPlayer、android.view.Surface以及android.widget.VideoView等JAVA类是开发者在应用层直接调用的API。 为了支持不同类型的媒体...