Android视频播放器示例
通过 MediaController 和 VideoView 类的帮助,我们可以在Android中播放视频文件。
MediaController类
android.widget.MediaController 是一个包含媒体控制器(如播放/暂停、上一个、下一个、快进、快退等)的视图。
VideoView类
android.widget.VideoView 类提供了播放和控制视频播放器的方法。VideoView类的常用方法如下:
方法 | 描述 |
---|---|
public void setMediaController(MediaController controller) | 设置媒体控制器到视频视图。 |
public void setVideoURI (Uri uri) | 设置视频文件的URI。 |
public void start() | 启动视频视图。 |
public void stopPlayback() | 停止播放。 |
public void pause() | 暂停播放。 |
public void suspend() | 暂停播放。 |
public void resume() | 恢复播放。 |
public void seekTo(int millis) | 跳转到指定时间(以毫秒为单位)。 |
activity_main.xml
将VideoView从工具栏拖动到activity_main.xml文件中,现在该文件将变为如下内容:
<RelativeLayout xmlns:androclass="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=".MainActivity" >
<VideoView
android:id="@+id/videoView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true" />
</RelativeLayout>
Activity类
让我们编写代码来播放视频文件。在这里,我们将播放位于sdcard/media目录下的1.mp4文件。
package com.example.video1;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.MediaController;
import android.widget.VideoView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VideoView videoView =(VideoView)findViewById(R.id.videoView1);
//Creating MediaController
MediaController mediaController= new MediaController(this);
mediaController.setAnchorView(videoView);
//specify the location of media file
Uri uri=Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/media/1.mp4");
//Setting MediaController and URI, then starting the videoView
videoView.setMediaController(mediaController);
videoView.setVideoURI(uri);
videoView.requestFocus();
videoView.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}