package com.sharpandroid.music.activity;
import java.util.Timer;
import java.util.TimerTask;
import javax.security.auth.PrivateCredentialPermission;
import com.sharpandroid.music.Player;
import com.sharpandroid.music.R;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.format.Time;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
public class MiniPlayer extends Activity {
public static final String TAG = "MiniPlayer";
private TextView hasPlayedTV = null;
private TextView durationTV = null;
private MySurfaceView miniMP = null;
private ViewfinderView viewfinderView = null;
private PopupWindow controlPW = null;
private PopupWindow batteryInfoPW = null;
private Player player = null;
private SeekBar skbProgress = null;
private View controlView = null;
private View batteryView = null;
private ProgressBar videoProgressBar = null;
private TextView batteryInfoTextView = null;
private TextView currentTimeTextView = null;
private ImageView batteryImageView = null;
private int BatteryN = 0;
private Timer PWMenuTimer = null;
private Timer Timerresh = null;
private ImageButton bt_pause = null;
private ImageButton bt_BackWard = null;
private ImageButton bt_UpWard = null;
private ImageButton bt_beep = null;
private ImageButton bt_fullscreen = null;
private String videoUrl = null;
private boolean saveorientationflag = false;
private Videocontrl mVideocontrlClickListener = null;
private boolean beepstop = true;
private boolean fullscreenstop = true;
private DisplayMetrics dm = null;
private boolean CheckHttpFlag = false;
private Handler controlPWHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if (msg.arg1 == 1) {
// String url = "/sdcard/menmen.mp4";
String url = videoUrl;
// MyDebug.MyDebugLogI(TAG,url);
CheckHttpFlag = false;
if (!Net.SetIntnectCheckFlag(MiniPlayer.this, url)) {
// MyDebug.ToastMessage(MiniPlayer.this, "播放失败......");
return;
}
CheckHttpFlag = Net.getHttpConnectEnable(MiniPlayer.this);
if (player != null) {
player.playUrl(url);
}
if (miniMP != null) {
// showPWMenu(miniMP);
}
if (videoProgressBar != null) {
videoProgressBar.setVisibility(View.GONE);
}
// MyDebug.MyDebugLogI(TAG,"player play");
} else if (msg.arg1 == 2) {
closePwMenu(null);
} else if (msg.arg1 == 3) {
/***** 定时 1 秒,处理以下事件 *******/
CheckPlaying();// *********检查播放状态********/
setbatteryInfo(); // 用来显示时间及电池状态
ShowLoading();
/********* 显示加载条 ********/
Timerresh = null;
Timerresh = new Timer();
Timerresh.schedule(new AutoTimerTask(AutoTimerTask.RemindTime),
1000);
}
}
};
/********* 显示加载条 ********/
public void ShowLoading() {
// MyDebug.MyDebugLogI(TAG, "ShowLoading --->");
if (player != null) {
if (player.getBufferingUpdatePosition() == player.getDuration()) {
videoProgressBar.setVisibility(View.GONE);
return;
}
if (player.getCurrentPosition() >= (player
.getBufferingUpdatePosition() - 2000)) {
videoProgressBar.setVisibility(View.VISIBLE);
} else {
videoProgressBar.setVisibility(View.GONE);
}
}
}
/********* 检查播放状态 ********/
public void CheckPlaying() {
// MyDebug.MyDebugLogI(TAG, "CheckPlaying --->");
if (player != null) {
if (player.getPlayStatus()) {
SetBmp_VideoControl(R.id.bt_pause, true);
} else {
SetBmp_VideoControl(R.id.bt_pause, false);
}
}
}
/**
* 关闭PopWindows
*/
public void closePwMenu(View v) {
// MyDebug.MyDebugLogI(TAG, "closePwMenu --->");
if (controlPW == null || controlPW.isShowing()) {
controlPW.dismiss();
}
if (batteryInfoPW == null || batteryInfoPW.isShowing()) {
batteryInfoPW.dismiss();
}
}
/**
*
* 显示PopWindows
*
*/
public void showPWMenu(View v) {
// MyDebug.MyDebugLogI(TAG, "showPWMenu --->");
if (PWMenuTimer != null) {
PWMenuTimer.cancel();
PWMenuTimer.purge();
}
PWMenuTimer = null;
PWMenuTimer = new Timer();
PWMenuTimer.schedule(new AutoTimerTask(AutoTimerTask.Play_Close_Menu),
4000);
setbatteryInfo();
if (controlPW != null && !controlPW.isShowing()) {
controlPW.showAtLocation(v, Gravity.BOTTOM, 0, 0); // findViewById(R.id.miniplayer)
}
if (batteryInfoPW != null && !batteryInfoPW.isShowing()) {
batteryInfoPW.showAtLocation(v, Gravity.TOP, 0, 0);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// MyDebug.MyDebugLogI(TAG, "onCreate --->");
SystemHandler.SetdisplayFullsreen(this); // 设置全屏
setContentView(R.layout.miniplayer);
videoUrl = "http://www.baidupcs.com/file/9648f60d43edde46448a4f9b0b42ffd5?fid=3573619809-250528-3206296764&time=1361326650&sign=FDTA-DCb740ccc5511e5e8fedcff06b081203-HuF5jeIr0gLmNL7GqPU3Uq%2BR4dQ%3D&expires=1h";// getIntent().getExtras().getString("videourl");
// / MyDebug.MyDebugLogI(TAG, videoUrl);
registerBReceiver();// 注册广播
initView(); // 初始化播放界面
initPopWindows(); // 初始化播放控制界面和显示电池时间状态界面
bindListener(); // 绑定控件的监听
CheckHttpFlag = false;
player = new Player(miniMP, skbProgress, hasPlayedTV, durationTV, this);
// 定时刷新,定时1秒钟
Timerresh = new Timer();
Timerresh.schedule(new AutoTimerTask(AutoTimerTask.RemindTime), 1000);
// 200毫秒后自动播放
Timer timer = new Timer();
timer.schedule(new AutoTimerTask(AutoTimerTask.Play_Task), 200);
}
/**
*
* 注册广播
*
*/
private void registerBReceiver() {
// MyDebug.MyDebugLogI(TAG, "registerBReceiver ---> mBatInfoReceiver");
registerReceiver(mBatInfoReceiver, new IntentFilter(
Intent.ACTION_BATTERY_CHANGED));
}
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
/*
* 如果捕捉到的action是ACTION_BATTERY_CHANGED, 就运行onBatteryInfoReceiver()
*/
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
BatteryN = intent.getIntExtra("level", 0); // 目前电量
// BatteryV = intent.getIntExtra("voltage", 0); //电池电压
// BatteryT = intent.getIntExtra("temperature", 0); //电池温度
// MyDebug.MyDebugLogI(TAG,
// "BatteryN = "+String.valueOf(BatteryN));
}
}
};
/**
*
* @author qiuj seekbar事件监听
*/
class SeekBarChangeEvent implements SeekBar.OnSeekBarChangeListener {
int progress = 0;
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// progress = progress * player.mediaPlayer.getDuration() /
// seekBar.getMax(
评论30
最新资源