VideoActivity1

package com.media;


import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
public class VideoActivity1 extends Activity implements MediaPlayer.OnPreparedListener, SurfaceHolder.Callback{
 
   private TextView textView;
   private static final String TAG = "MediaDemo";
  
   //建立MediaPlayer对象
   private MediaPlayer mediaPlayer;
  
   //SurfaceView对象作为Layout上的输出接口
   private SurfaceView surfaceView;
  
   //以SurfaceHolder来控制SurfaceView
   private SurfaceHolder surfaceHolder;
  
   //4个ImageButton控制MediaPlayer事件
   private ImageButton play;
   private ImageButton pause;
   private ImageButton reset;
   private ImageButton stop;
  
   private Button button;
  
   //MediaPlayer暂停的flag
   private boolean isPaused = false;
  
   //MediaPlayer被释放的flag
   private boolean isReleased = false;
  
   //将视频文件存放在SD卡的路径
   private String strVideoPath = "";
  
   @Override
   public void onCreate(Bundle savedInstanceState){
     super.onCreate(savedInstanceState);
    
     //隐藏Activity的标题栏
     //必须加入到 setContentView(R.layout.video1)之前
     requestWindowFeature(Window.FEATURE_NO_TITLE);
     setContentView(R.layout.video1);
    
     if(!checkSDCard()){
       //提醒未安装SD存储卡
       createToast("没有发现安装的SD卡!",true);
     }
    
    
     textView = (TextView)findViewById(R.id.myTextView1);
    
     //绑定Layout的SurfaceView
     surfaceView = (SurfaceView) findViewById(R.id.mSurfaceView1);
    
     //设定SurfaceHolder为Layout SurfaceView全屏幕
     surfaceHolder = surfaceView.getHolder();
     surfaceHolder.addCallback(this);
    
     //设置影片的播放大小为176x144
     //如果取消  按照视频文件的原始大小播放
//     surfaceHolder.setFixedSize(176,144);
     surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    
     //4个ImageButton
     play = (ImageButton) findViewById(R.id.play);
     pause = (ImageButton) findViewById(R.id.pause);
     reset = (ImageButton) findViewById(R.id.reset);
     stop = (ImageButton) findViewById(R.id.stop);
     //设置全屏的按钮
     button=(Button)findViewById(R.id.myButton);
    
    
     //设定视频文件的位置
     strVideoPath = "/sdcard/maidou.3gp";
    
     //播放按钮
     play.setOnClickListener(new ImageButton.OnClickListener(){
  @Override
  public void onClick(View arg0) {
         if(checkSDCard()){
           playVideo(strVideoPath);
         }
  }
     });
    
     //暂停按钮
     pause.setOnClickListener(new ImageButton.OnClickListener(){
       public void onClick(View view){
         if(checkSDCard()){
           if (mediaPlayer != null){
             if(isReleased == false){
               if(isPaused==false){
                mediaPlayer.pause();
                isPaused = true;
                   textView.setText("影片暂停");
               }
               else if(isPaused==true){
                mediaPlayer.start();
                isPaused = false;
                   textView.setText("视频播放中");
               }
             }
           }
         }
       }
     });
    
     //重新播放按钮
     reset.setOnClickListener(new ImageButton.OnClickListener(){
       public void onClick(View view){
         if(checkSDCard()){
           if(isReleased == false){
             if (mediaPlayer != null){
              mediaPlayer.seekTo(0);
             }
           }
         }
       }
     });
    
     //停止按钮
     stop.setOnClickListener(new ImageButton.OnClickListener(){
       public void onClick(View view){
         if(checkSDCard()){
           if (mediaPlayer != null){
             if(isReleased==false){
              mediaPlayer.stop();
              mediaPlayer.release();
              isReleased = true;
                 textView.setText("播放器停止");
             }         
           }
         }
       }
     });
    
     //全屏按钮
     button.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View arg0) {
            //设置全屏
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            button.setText("还  原");
   }
      });
   }
  
   //自定义播放影片
   private void playVideo(String strPath){
    mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    
       //设定Video影片以SurfaceHolder播放
    mediaPlayer.setDisplay(surfaceHolder); 
     try{
      mediaPlayer.setDataSource(strPath);
     }
     catch (Exception e){
      textView.setText("setDataSource Exceeption:"+e.toString());
     }
    
     try{
      mediaPlayer.prepare();
     }
     catch (Exception e){
      textView.setText("prepare Exceeption:"+e.toString());
     }
     mediaPlayer.start();
     isReleased = false;
     textView.setText("视频播放中");
    
     mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
       @Override
       public void onCompletion(MediaPlayer arg0){
        mediaPlayer.stop();
             mediaPlayer.release();
             isReleased = true;
        textView.setText("播放器停止");
       }
     });
   }
  
   private boolean checkSDCard(){
     //检查SD卡是否安装
     if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){
       return true;
     }
     else{
       return false;
     }
   }
  
   //创建Toast对象
   public void createToast(String str, boolean isLong){
     if(isLong==true){
       Toast.makeText(VideoActivity1.this, str, Toast.LENGTH_LONG).show();
     }
     else{
       Toast.makeText(VideoActivity1.this, str, Toast.LENGTH_SHORT).show();
     }
   }
  
   @Override
   public void surfaceChanged(SurfaceHolder surfaceholder, int format, int w, int h){
     Log.i(TAG, "Surface Changed");
   }
  
   @Override
   public void surfaceCreated(SurfaceHolder surfaceholder){
     Log.i(TAG, "Surface Created");
   }
  
   @Override
   public void surfaceDestroyed(SurfaceHolder surfaceholder){
     Log.i(TAG, "Surface Destroyed");
   }


 @Override
 public void onPrepared(MediaPlayer arg0) {
  Log.i(TAG, "onPrepared");
 }
}

转载于:https://my.oschina.net/donghu/blog/9816

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值