- package com.example.test318;
- import java.io.IOException;
- import android.app.Activity;
- import android.content.pm.ActivityInfo;
- import android.graphics.Canvas;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.media.MediaPlayer.OnCompletionListener;
- import android.os.Bundle;
- import android.view.SurfaceHolder;
- import android.view.View;
- import android.view.SurfaceHolder.Callback;
- import android.view.SurfaceView;
- import android.view.View.OnClickListener;
- import android.view.Window;
- import android.view.WindowManager;
- import android.widget.Button;
- import android.widget.Toast;
- public class SView extends Activity {
- /**
- * @path 本地播放的绝对路径
- * @player 播放器
- * @surface 播放舞台
- * @surfaceHolder 播放通道
- * @TAG 连续播放的标记
- */
- private String path = "mnt/sdcard/Friend1.mp4";
- private MediaPlayer player;
- private SurfaceView surface;
- private SurfaceHolder surfaceHolder;
- private Button play, pause, stop;
- private int TAG = 1;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- /**
- * 注:标题。全屏。横竖屏均可以在布局中静态注册
- */
- requestWindowFeature(Window.FEATURE_NO_TITLE);// 设置无标题
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);// 强制为横屏
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏
- setContentView(R.layout.activity_sufaceview);
- play = (Button) findViewById(R.id.btn_player);
- pause = (Button) findViewById(R.id.btn_pause);
- stop = (Button) findViewById(R.id.btn_stop);
- play.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (!player.isPlaying()) {
- int msec = player.getCurrentPosition();
- player.seekTo(msec);
- player.start();
- }
- }
- });
- pause.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (player.isPlaying()) {
- player.pause();
- } else {
- int msec = player.getCurrentPosition();
- player.seekTo(msec);
- player.start();
- }
- }
- });
- stop.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- player.pause();
- player.seekTo(0);
- }
- });
- surface = (SurfaceView) findViewById(R.id.sV);
- // surface.setMinimumHeight((int)
- // (getWindowManager().getDefaultDisplay().getHeight()*0.8));
- /**
- * surfaceHolder的设置
- */
- surfaceHolder = surface.getHolder();
- surfaceHolder.setFixedSize(100, 100);
- surfaceHolder.setType(surfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
- surfaceHolder.addCallback(new Callback() {
- @Override
- public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2,
- int arg3) {
- // TODO Auto-generated method stub
- }
- @Override
- public void surfaceCreated(SurfaceHolder holder) {
- // TODO Auto-generated method stub
- play(TAG);
- player.setOnCompletionListener(new OnCompletionListener() {//setOnCompletionListener判断结束的函数
- @Override
- public void onCompletion(MediaPlayer mp) {
- // TODO Auto-generated method stub
- Toast.makeText(SView.this, "第" + TAG + "段视频结束",
- Toast.LENGTH_LONG).show();
- // player.seekTo(0);
- TAG++;
- playNext(TAG);
- /*
- * if(TAG>7) { player.seekTo(0); }
- */
- }
- });
- }
- @Override
- public void surfaceDestroyed(SurfaceHolder holder) {
- // TODO Auto-generated method stub
- if (player.isPlaying()) {
- player.stop();
- }
- player.release();
- }
- });
- }
- public String getPath(int tag) { //路径的获得
- switch (tag) {
- case 1:
- path = "mnt/sdcard/Friend1.mp4";
- break;
- case 2:
- path = "mnt/sdcard/Friend2.mp4";
- break;
- case 3:
- path = "mnt/sdcard/Friend3.mp4";
- break;
- case 4:
- path = "mnt/sdcard/Friend4.mp4";
- break;
- case 5:
- path = "mnt/sdcard/Friend5.mp4";
- break;
- case 6:
- path = "mnt/sdcard/Friend6.mp4";
- break;
- case 7:
- path = "mnt/sdcard/Friend7.mp4";
- break;
- default:
- return null;
- }
- return path;
- }
- public void play(int tag) { //播放函数
- path = getPath(tag);
- player = new MediaPlayer();
- player.setAudioStreamType(AudioManager.STREAM_MUSIC);
- player.setDisplay(surfaceHolder);
- try {
- player.setDataSource(path);
- player.prepare();
- player.start();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalStateException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public void playNext(int tag) { //播放下一段视频的函数
- player.reset();
- path = getPath(tag);
- player.setDisplay(surfaceHolder);
- try {
- player.setDataSource(path);
- player.prepare();
- player.setAudioStreamType(AudioManager.STREAM_MUSIC);
- surfaceHolder.setFixedSize(player.getVideoWidth(),
- player.getVideoHeight());
- player.start();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalStateException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
Android播放视频
最新推荐文章于 2024-04-03 08:51:08 发布