import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import java.util.Timer;
import java.util.TimerTask;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
import android.widget.VideoView;
import com.Hisense.consant.Constant;
public class KzVideoActivity extends Activity {
TextView kzvideo_tv;
VideoView videoView;
boolean isButtonShow = false;
boolean flag = true;
LinearLayout shade;
Button kzvideo_back_btn, kzvideo_forward_btn,small_btn_kz;
ToggleButton kzvideo_pause_btn;
SeekBar kzvideo_sb;
int currentpostion = 0, seekbarpostion = 0,smallsbpostion=-1;
TextView autoCurrentpostion, autoDuration;
Timer time = new Timer();
int currentVideoID=0;
LayoutInflater inflater;
int whichavtivity;
// MyMediaController mmc;
int smallIndex,smallPostion;
String smallPath;
Handler hanlder_btn = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if (msg.what == 1) {
switch (msg.arg1) {
case 0:
if (flag) {
small_btn_kz.setVisibility(View.GONE);
shade.setVisibility(View.GONE);
isButtonShow = false;
}
break;
default:
break;
}
}
}
};
@SuppressLint("HandlerLeak")
Handler handlertime = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if (msg.what == 1) {
Log.d("mytest","shodao"+msg.arg1);
kzvideo_sb.setProgress(msg.arg1);
Date date = new Date(msg.arg1 * 1000);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
autoCurrentpostion.setText(getSpecialTime(msg.arg1));
}
}
};
Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if(smallsbpostion!=-1){
seekbarpostion=smallsbpostion;
smallsbpostion=-1;
}
seekbarpostion++;
handlertime.obtainMessage(1, seekbarpostion, -1).sendToTarget();
handlertime.postDelayed(runnable, 1000);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 全屏
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_video);
// mmc=(MyMediaController) findViewById(R.id.myMediaController1);
// 初始化控件
init();
// 接收视频文件路径
String videoPath = getIntent().getExtras().getString("videoPath");
currentVideoID=getIntent().getIntExtra("videoID", -1);
int duration = getIntent().getIntExtra("videoDuration", -1);
whichavtivity=getIntent().getIntExtra("whichactivity",-1);
if(whichavtivity==Constant.KZ){
smallPostion=getIntent().getIntExtra("postion", -1);
smallIndex=getIntent().getIntExtra("index", -1);
smallPath=getIntent().getStringExtra("path");
currentVideoID=smallIndex;
videoReStart(smallPostion, smallIndex);
}else{
videoStart(videoPath, duration);
}
// 视频播放
videoView.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
handlertime.removeCallbacks(runnable);
}
});
//
//小窗口播放
small_btn_kz.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent in=new Intent(KzVideoActivity.this,SmallPlay.class);
in.putExtra("path",MainActivity.mVideoList.get(currentVideoID).getPath());
in.putExtra("postion",videoView.getCurrentPosition());
in.putExtra("index",currentVideoID);
in.putExtra("whichactivity",Constant.KZ);
startActivity(in);
finish();
}
});
kzvideo_tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (!isButtonShow) {
shade.setVisibility(View.VISIBLE);
small_btn_kz.setVisibility(View.VISIBLE);
isButtonShow = true;
time.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
if (flag) {
hanlder_btn.obtainMessage(1, 0, -1).sendToTarget();
} else {
flag = true;
}
}
}, 4000);
} else {
flag = false;
small_btn_kz.setVisibility(View.GONE);
shade.setVisibility(View.GONE);
isButtonShow = false;
}
}
});
kzvideo_pause_btn.setOnCheckedChangeListen
er(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
videoView.pause();
// currentpostion=videoView.getCurrentPosition()/1000;
handlertime.removeCallbacks(runnable);
} else {
videoView.seekTo(videoView.getCurrentPosition());
videoView.start();
seekbarpostion = videoView.getCurrentPosition() / 1000;
handlertime.post(runnable);
}
}
});
kzvideo_back_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(currentVideoID==0){
Toast.makeText(getApplicationContext(), "这已经是第一个视频",5000).show();
}else{
currentVideoID--;
handlertime.removeCallbacks(runnable);
videoView.setVideoPath(MainActivity.mVideoList.get(currentVideoID).getPath());
seekbarpostion=0;
videoView.start();
handlertime.post(runnable);
}
}
});
kzvideo_forward_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(currentVideoID==MainActivity.mVideoList.size()-1){
Toast.makeText(getApplicationContext(), "这已经是最后一个是视频",5000).show();
}else{
currentVideoID++;
handlertime.removeCallbacks(runnable);
videoView.setVideoPath(MainActivity.mVideoList.get(currentVideoID).getPath());
seekbarpostion=0;
videoView.start();
handlertime.post(runnable);
}
}
});
kzvideo_sb.setOnSeekBarChangeListen
er(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
seekbarpostion = seekBar.getProgress();
Date date = new Date(seekbarpostion * 1000);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
autoCurrentpostion.setText(getSpecialTime(seekbarpostion));
currentpostion = seekbarpostion;
videoView.seekTo(seekbarpostion * 1000);
handlertime.removeCallbacks(runnable);
if (videoView.isPlaying()) {
handlertime.post(runnable);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// TODO Auto-generated method stub
}
});
}
private void init() {
videoView = (VideoView) findViewById(R.id.KzVideo);
kzvideo_tv = (TextView) findViewById(R.id.kzvideo_tv);
kzvideo_back_btn = (Button) findViewById(R.id.kz_back_bt);
kzvideo_pause_btn = (ToggleButton) findViewById(R.id.kz_pause_bt);
kzvideo_forward_btn = (Button) findViewById(R.id.kz_forward_bt);
kzvideo_sb = (SeekBar) findViewById(R.id.kz_seekBar1);
autoCurrentpostion = (TextView) findViewById(R.id.autocurrentpostion);
autoDuration = (TextView) findViewById(R.id.autoduration);
shade = (LinearLayout) findViewById(R.id.shade);
small_btn_kz=(Button)findViewById(R.id.small_btn_kz);
}
@SuppressLint("SimpleDateFormat")
private void videoStart(String videoPath, int duration) {
videoView.setVideoPath(videoPath);
videoView.start();
kzvideo_sb.setMax(duration);
Date date = new Date(duration * 1000 );
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
autoDuration.setText(getSpecialTime(duration));
handlertime.post(runnable);
seekbarpostion = currentpostion;
}
@SuppressLint("SimpleDateFormat")
private void videoReStart(int postion,int index) {
int duration=Integer.parseInt(MainActivity.mVideoList.get(index).getDuration());
videoView.setVideoPath(MainActivity.mVideoList.get(index).getPath());
kzvideo_sb.setMax(duration/1000);
videoView.seekTo(postion);
videoView.start();
Date date = new Date(duration * 1000 );
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
//
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
autoDuration.setText(getSpecialTime(duration));
handlertime.post(runnable);
smallsbpostion = postion/1000;
}
public String getSpecialTime(int miao) {
String strTime = "";
int minute=miao/60/60;
if (miao % 60 > 9) {
strTime = minute+":"+miao / 60 + ":" + miao % 60;
} else {
strTime = minute+":"+miao / 60 + ":0" + miao % 60;
}
return strTime;
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
handlertime.removeCallbacks(runnable);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.kzvideo, menu);
return true;
}
}
import java.util.Date;
import java.util.TimeZone;
import java.util.Timer;
import java.util.TimerTask;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
import android.widget.VideoView;
import com.Hisense.consant.Constant;
public class KzVideoActivity extends Activity {
}