Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.commonsware.android.vidtry;
- import android.app.Activity;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.media.MediaPlayer.OnCompletionListener;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.os.SystemClock;
- import android.util.Log;
- import android.view.KeyEvent;
- import android.view.MotionEvent;
- import android.view.SurfaceHolder;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ImageButton;
- import android.widget.ProgressBar;
- public class Player extends Activity implements OnCompletionListener,
- MediaPlayer.OnPreparedListener, SurfaceHolder.Callback {
- private static String TAG = "VideoPlayer";
- private int width=0;
- private int height=0;
- private MediaPlayer player;
- private TappableSurfaceView surface;
- private SurfaceHolder holder;
- private View bottomPanel=null;
- private long lastActionTime=0L;
- private boolean isPaused=false;
- private Button go=null;
- private ProgressBar progressBar =null;
- private ImageButton btnVideoPause =null;
- private ImageButton btnVideoStop =null;
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.main);
- surface=(TappableSurfaceView)findViewById(R.id.surface);
- surface.addTapListener(onTap);
- holder=surface.getHolder();
- holder.addCallback(this);
- holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
- bottomPanel=findViewById(R.id.bottom_panel);
- progressBar =(ProgressBar)findViewById(R.id.timeline);
- btnVideoPause =(ImageButton)findViewById(R.id.btnVideoPause);
- btnVideoPause.setOnClickListener(onVidCtrlClick);
- btnVideoStop =(ImageButton)findViewById(R.id.btnVideoStop);
- btnVideoStop.setOnClickListener(onVidCtrlClick);
- }
- @Override
- public void onStart() {
- super.onStart();
- playVideo("/sdcard/myapp/category/1/video_agkkr6me.mp4");
- clearPanels(true);
- }
- private void playVideo(String url) {
- try {
- btnVideoPause.setEnabled(false);
- if (player==null) {
- player=new MediaPlayer();
- player.setScreenOnWhilePlaying(true);
- }
- else {
- player.stop();
- player.reset();
- }
- url = "/sdcard/myapp/main/videos/main.mp4"; // <--- just for test purposes hardcoded here now
- player.setDataSource(url);
- player.setDisplay(holder);
- player.setAudioStreamType(AudioManager.STREAM_MUSIC);
- player.setOnCompletionListener(this);
- player.setOnPreparedListener(this);
- player.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
- public void onSeekComplete(MediaPlayer mediaPlayer) {
- Log.d("APP", "current pos... "+ player.getCurrentPosition() );
- player.start(); // <------------------ start video on seek completed
- player.setOnSeekCompleteListener(null);
- }
- });
- player.prepareAsync();
- }
- catch (Throwable t) {
- Log.e(TAG, "Exception in btnVideoPause prep", t);
- }
- }
- public void onPrepared(MediaPlayer mediaplayer) {
- width=player.getVideoWidth();
- height=player.getVideoHeight();
- if (width!=0 && height!=0) {
- holder.setFixedSize(width, height);
- progressBar.setProgress(0);
- progressBar.setMax(player.getDuration());
- player.seekTo(16867); // <------------------ seeking to position
- }
- btnVideoPause.setEnabled(true);
- }
- @Override
- protected void onResume() {
- super.onResume();
- isPaused=false;
- surface.postDelayed(onEverySecond, 1000);
- }
- @Override
- protected void onPause() {
- super.onPause();
- isPaused=true;
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (player!=null) {
- player.release();
- player=null;
- }
- surface.removeTapListener(onTap);
- }
- private void clearPanels(boolean both) {
- lastActionTime=0;
- bottomPanel.setVisibility(View.GONE);
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- lastActionTime=SystemClock.elapsedRealtime();
- if (keyCode==KeyEvent.KEYCODE_BACK &&
- bottomPanel.getVisibility()==View.VISIBLE) {
- clearPanels(true);
- return(true);
- }
- return(super.onKeyDown(keyCode, event));
- }
- public void onCompletion(MediaPlayer arg0) {
- btnVideoPause.setEnabled(false);
- }
- private TappableSurfaceView.TapListener onTap=
- new TappableSurfaceView.TapListener() {
- public void onTap(MotionEvent event) {
- lastActionTime=SystemClock.elapsedRealtime();
- bottomPanel.setVisibility(View.VISIBLE);
- }
- };
- private Runnable onEverySecond=new Runnable() {
- public void run() {
- if (lastActionTime>0 &&
- SystemClock.elapsedRealtime()-lastActionTime>3000) {
- clearPanels(false);
- }
- if (player!=null) {
- progressBar.setProgress(player.getCurrentPosition());
- }
- if (!isPaused) {
- surface.postDelayed(onEverySecond, 1000);
- }
- }
- };
- private View.OnClickListener onVidCtrlClick = new View.OnClickListener() {
- public void onClick(View v) {
- lastActionTime = SystemClock.elapsedRealtime();
- switch(v.getId()) {
- case R.id.btnVideoPause:
- Log.d(TAG,"onVidCtrlClick btnVideoPause" );
- if (player!=null) {
- if (player.isPlaying()) {
- btnVideoPause.setImageResource(R.drawable.icon_media_player_play);
- player.pause();
- }
- else {
- btnVideoPause.setImageResource(R.drawable.icon_media_player_pause);
- player.start();
- }
- }
- break;
- case R.id.btnVideoStop:
- Log.d(TAG,"onVidCtrlClick btnVideoPlay" );
- btnVideoPause.setImageResource(R.drawable.icon_media_player_play);
- // player.pause();
- player.stop();;
- break;
- }
- }
- };
- public void surfaceChanged(SurfaceHolder surfaceholder, int i, int j, int k) {}
- public void surfaceDestroyed(SurfaceHolder surfaceholder) {}
- public void surfaceCreated(SurfaceHolder holder) {}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement