package com.youplayer.player;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.content.IntentFilter;
import android.gesture.GestureOverlayView;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.telephony.TelephonyManager;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.RemoteViews;
import android.widget.SeekBar;
import android.widget.TextView;
import com.youplayer.core.You_Core;
import com.youplayer.core.mediainfo.YouPlayerBitMap;
import com.youplayer.core.mediainfo.YouPlayerLyrics;
import com.youplayer.core.struct.You_full_screen_player_data_to_ui;
import com.youplayer.core.struct.You_full_screen_tips;
import com.youplayer.core.struct.You_page_full_player_show_type;
import com.youplayer.core.struct.You_player_media_info;
import com.youplayer.core.struct.You_player_media_info.Cls_you_media_type_e;
import com.youplayer.core.struct.You_player_media_info.Player_type;
import com.youplayer.player.frame.YouPlayerEventControler;
import com.youplayer.player.frame.YouPlayerViewControler;
import com.youplayer.player.fullplayer.YouLyricView;
import com.youplayer.player.fullplayer.YouPlayerAdapter;
import com.youplayer.player.fullplayer.YouPlayerAudioSubtitle;
import com.youplayer.player.fullplayer.YouPlayerBrightControl;
import com.youplayer.player.fullplayer.YouPlayerEvent;
import com.youplayer.player.fullplayer.YouPlayerException;
import com.youplayer.player.fullplayer.YouPlayerRelativeList;
import com.youplayer.player.fullplayer.YouPlayerSlideView;
import com.youplayer.player.fullplayer.YouPlayerSubtitleView;
import com.youplayer.player.fullplayer.YouPlayerSurfaceView;
import com.youplayer.player.fullplayer.YouPlayerVolControl;
import com.youplayer.player.local.YouPlayerInterfaceFile.MediaInfoCallBack;
import com.youplayer.player.local.YouPlayerMediaFile;
import com.youplayer.util.LOG;
import com.youplayer.util.YouOnGesture;
import com.youplayer.util.YouPhonePowerListener;
import com.youplayer.util.YouPhonePowerUtil;
import com.youplayer.util.YouPlayerSensorObserver;
import com.youplayer.util.YouUtility;
public class YouPlayerFullScreenPlayer extends YouPlayerViewControler implements YouPlayerEvent, YouPlayerSensorObserver {
private static final String TAG = "FullScreenPlayer";
public static YouPlayerFullScreenPlayer instance;
public static SurfaceView mPlayerSysSurfaceView;
public static SurfaceView mPlayerYouSurfaceView;
// public RelativeLayout mPlayerMediaVideoLayout;
public RelativeLayout mPlayerMediaAudioLayout;
public RelativeLayout mPlayerMediaRadioLayout;
// public RelativeLayout mPlayerMediaAironeLayout;
private RelativeLayout mPlayerBackgroundLogo;
// private TextView mPlayerTopSysTimeText;
// private ImageView mPlayerTopImgvBattery;
// private TextView mPlayerTopDecodeTypeText;
// private TextView mPlayerBtmMediaName;
// private TextView mPlayerBtmPlayState;
// private TextView mPlayerBtmTimeMin;
// private TextView mPlayerBtmTimeMax;
private SeekBar mPlayerBtmPlaySeekbar;
// private ImageButton mPlayerBtmImgbMore;
// private ImageButton mPlayerBtmImgbDlna;
// private ImageButton mPlayerBtmImgbQuality;
private ImageButton mPlayerBtmImgbPrevious;
private ImageButton mPlayerBtmImgbPlay;
private ImageButton mPlayerBtmImgbNext;
// private ImageButton mPlayerBtmImgbFullScreen;
private TextView mPlayerCenterTips;
public GestureOverlayView mPlayerGestureView;
private YouPlayerVolControl mPlayerSeekbarVolume;
public YouPlayerBrightControl mPlayerSeekbarBrightness;
// private YouPlayerRelativeList mPlayerRelativeList;
// private ImageButton mPlayerRelativeBtn;
// private View mPlayerRelativeContainer;
private YouPlayerSubtitleView mPlayerSubtitleView;
private YouLyricView mPlayerLyricView;
private Handler mPlayerEventHandler;
private YouPhonePowerUtil mPlayerPhonePower;
private YouPlayerMediaFile mMediaFile;
private InitMediaTask mInitMediaTask = null;
public YouPlayerAdapter mPlayerAdapter;
// private PlayerAdManager mPlayerAdManager;
private PopupWindow mPopupWindowSpeed = null;
private BroadcastReceiver sdcardEjectReceiver;
private BroadcastReceiver phoneStateReceiver;
private NotificationManager mPlayerNotificationManager;
private Notification mPlayerNotification;
private YouPlayerAudioSubtitle mPlayerAudioSubtitle;
private RelativeLayout mPlayerLockView;
private YouPlayerSlideView mPlayerUnlockImgBtn;
private YouPlayerSurfaceView.OnCreateExecuted mOnSurfaceCreatedExecute;
private int mSpeed = 1;
private int[] BatteryDrawableArray = {
R.drawable.youplayer_fullplayer_battery_0,R.drawable.youplayer_fullplayer_battery_1,R.drawable.youplayer_fullplayer_battery_2,R.drawable.youplayer_fullplayer_battery_3,
R.drawable.youplayer_fullplayer_battery_4,R.drawable.youplayer_fullplayer_battery_5,R.drawable.youplayer_fullplayer_battery_6,R.drawable.youplayer_fullplayer_battery_7,
R.drawable.youplayer_fullplayer_battery_8,R.drawable.youplayer_fullplayer_battery_9,R.drawable.youplayer_fullplayer_battery_10,
};
private int mPlayerBatteryPercent = PLAYER_DEFAULT_UNKNOW_VALUE;
private boolean mPlayerIsSeeking = false;
private boolean mPlayerIsGoToBackground = false;
private boolean playerViewHasAdded = false;
private String mPlayerFileName = "";
private boolean mPlayerIsLocked = false;
//弹出框的销毁
private List<IStopExec> onDestoryExec = new ArrayList<IStopExec>();
private List<IStopExec> onNewExec = new ArrayList<IStopExec>();
private int mSurface_width;
private int mSurface_height;
public YouPlayerFullScreenPlayer(Context context, Object core_data, Object ui_data) {
super(context, core_data, ui_data);
instance = this;
loadPlayerViews(context);
}
private void loadPlayerViews(Context context) {
try {
mView = LayoutInflater.from(context).inflate(R.layout.youplayer_fullplayer, null);
initPlayerViews();
initializeControls();
LOG.v(TAG, "loadPlayerViews", "load success");
} catch (Exception e) {
e.printStackTrace();
LOG.e(TAG, "loadPlayerViews", "load failed");
playerExitOnRequest();
}
}
private void reloadPlayerViews(Context context) {
try {
reInitPlayerViews();
initializeControls();
// AirOne.getInstance().resetChecked();
// mPlayerBtmImgbDlna.setSelected(false);
LOG.v(TAG, "reLoadPlayerViews", "reload success");
} catch (Exception e) {
e.printStackTrace();
LOG.e(TAG, "reLoadPlayerViews", "reload failed");
playerExitOnRequest();
}
}
private void setPlayerViewsInitalizeValue() {
try {
reInitPlayerViews();
setBackgroundLogoIsShow(true);
LOG.v(TAG, "setPlayerViewsInitalizeValue", "Initalize success");
} catch (Exception e) {
e.printStackTrace();
LOG.e(TAG, "setPlayerViewsInitalizeValue", "Initalize failed");
playerExitOnRequest();
}
}
private void initializeControls() throws YouPlayerException{
initPlayerHandler();
initPlayerOnClickListener();
initPlayerBatteryPowerListener();
initPlayerGestureListener();
// initializeAdManager();
initSdcardStateReceiver();
// initShakeListener();
initScreenOffRegisters();
initTelephoneReceiver();
removeNotification();
initAudioThumbnailPos();
initSysTimeUpdateTimer();
mView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// if( ( v != mPlayerBtmMediaName && hasFocus ) )
// mPlayerBtmMediaName.requestFocus();
// else if( v == mPlayerBtmMediaName && !hasFocus )
// mPlayerBtmMediaName.requestFocus();
}
});
}
private void initSysTimeUpdateTimer() {
final You_full_screen_player_data_to_ui uidata = new You_full_screen_player_data_to_ui();
uidata.type = PLAYER_FN_UI_MSG_UPDATE_SYSTIME;
new Timer().schedule(new TimerTask(){
@Override
public void run() {
playerSendMessage(PLAYER_UI_MSG_ADAPTER_HANDLER_CONVERT,uidata,0);
}
},1000,1000);
}
private void initPlayerHandler() throws YouPlayerException{
mPlayerEventHandler = new Handler(mContext.getMainLooper()){
@Override
public void handleMessage(Message msg) {
playerMessageHandler(msg);
}
};
mPlayerAdapter = new YouPlayerAdapter(mContext){
@Override
public void adapterCallback(int page_id, int page_action, Object core_data,Object ui_data) {
playerSendMessage(PLAYER_UI_MSG_ADAPTER_HANDLER_CONVERT, (You_full_screen_player_data_to_ui)core_data, 0);
}
};
}
private void playerMessageHandler(Message msg) {
switch(msg.what){
case PLAYER_UI_MSG_ADAPTER_HANDLER_CONVERT:
doPlayerHandlerCallBackAction((You_full_screen_player_data_to_ui)msg.obj, null);
break;
default:
break;
}
}
private void playerSendMessage(int msgType, Object obj, long delayMillis){
Message msg = mPlayerEventHandler.obtainMessage();
msg.what = msgType;
msg.obj = obj;
mPlayerEventHandler.sendMessageDelayed(msg, delayMillis);
}
private void initPlayerViews() throws YouPlayerException{
// mPlayerMediaVideoLayout = (RelativeLayout)mView.findViewById(R.id.fullplayer_video_layout);
mPlayerMediaAudioLayout = (RelativeLayout)mView.findViewById(R.id.fullplayer_audio_layout);
mPlayerMediaRadioLayout = (RelativeLayout)mView.findViewById(R.id.fullplayer_radio_layout);
mPlayerSysSurfaceView = (SurfaceView)mView.findViewById(R.id.fullplayer_surface_view_system);
mPlayerYouSurfaceView = (SurfaceView)mView.findViewById(R.id.fullplayer_surface_view_fone);
mPlayerBackgroundLogo = (RelativeLayout)mView.findViewById(R.id.full_logo_bg);
// mPlayerTopSysTimeText = (TextView)mView.findViewById(R.id.fullplayer_top_sys_time_text);
// mPlayerTopImgvBattery = (ImageView)mView.findViewById(R.id.fullplayer_top_imgv_battery);
// mPlayerBtmMediaName = (TextView)mView.findViewById(R.id.fullplayer_btm_media_name);
// mPlayerBtmPlayState = (TextView)mView.findViewById(R.id.fullplayer_btm_play_state);
// mPlayerBtmTimeMin = (TextView)mView.findViewById(R.id.fullplayer_btm_text_time_min);
// mPlayerBtmTimeMax = (TextView)mView.findViewById(R.id.fullplayer_btm_text_time_max);
mPlayerBtmPlaySeekbar = (SeekBar)mView.findViewById(R.id.full_play_seekbar);
// mPlayerBtmImgbMore = (ImageButton)mView.findViewById(R.id.fullplayer_btm_imgb_more);
// mPlayerBtmImgbDlna = (ImageButton)mView.findViewById(R.id.fullplayer_imgb_dlna);
mPlayerBtmImgbPrevious = (ImageButton)mView.findViewById(R.id.fullplayer_btm_imgb_previous);
mPlayerBtmImgbPlay = (ImageButton)mView.findViewById(R.id.fullplayer_btm_imgb_play);
mPlayerBtmImgbNext = (ImageButton)mView.findViewById(R.id.fullplayer_btm_imgb_next);
// mPlayerBtmImgbQuality = (ImageButton)mView.findViewById(R.id.fullplayer_btm_imgb_quality);
// mPlayerBtmImgbFullScreen = (ImageButton)mView.findViewById(R.id.fullplayer_btm_imgb_fullscreen);
// mPlayerRelativeBtn = (ImageButton) mView.findViewById(R.id.fullplayer_btn_relative);
// mPlayerRelativeContainer = mView.findViewById(R.id.fullplayer_relative_container);
// mPlayerTopDecodeTypeText = (TextView) mView.findViewById(R.id.fullplayer_top_sys_decode_type);
mPlayerCenterTips = (TextView)mView.findViewById(R.id.fullplayer_center_tips);
mPlayerGestureView = (GestureOverlayView) mView.findViewById(R.id.full_surface_gesture);
mPlayerSeekbarVolume = (YouPlayerVolControl) mView.findViewById(R.id.full_sound_seekto);
mPlayerSeekbarBrightness = (YouPlayerBrightControl) mView.findViewById(R.id.full_brightness_seekto);
// mPlayerRelativeList = (YouPlayerRelativeList) mView.findViewById(R.id.fullplayer_videolink);
mPlayerSubtitleView = (YouPlayerSubtitleView) mView.findViewById(R.id.fullplayer_subtitle_view);
mPlayerLyricView = (YouLyricView) mView.findViewById(R.id.fullplayer_audio_lyricview);
mPlayerLockView = (RelativeLayout)mView.findViewById(R.id.fullplayer_lock_layout);
mPlayerUnlockImgBtn = (YouPlayerSlideView)mView.findViewById(R.id.fullplayer_lock_slidrview);
// mPlayerMask = (ImageView)mView.findViewById(R.id.fullplayer_mask);
setPlayerSeekbarIsEnable(false);
mPlayerSeekbarBrightness.setBrightInit();
mOnSurfaceCreatedExecute = new YouPlayerSurfaceView.OnCreateExecuted(){
@Override
public void onCreated(SurfaceView sv) {
switch (mPlayerAdapter.mMediaInfo.is_system_player) {
case Player_type.PLAYER_TYPE_HARD_SOFT:
Player_UIManager.fone_media_player_set_surface_view(sv.getHolder().getSurface());
break;
case Player_type.PLAYER_TYPE_SYSTEM:
YouPlayerAndroidPlayer.Uim_Set_Player_Surface(mPlayerSysSurfaceView);
break;
case Player_type.PLAYER_TYPE_SOFT:
Player_UIManager.fone_media_player_set_surface_view(sv.getHolder().getSurface());
if( mPlayerAdapter.mMediaInfo.width == 0 )
sv.getHolder().setFixedSize(mSurface_width,mSurface_height);
else
sv.getHolder().setFixedSize(mPlayerAdapter.mMediaInfo.width,mPlayerAdapter.mMediaInfo.height);
break;
}
YouPlayerEventControler.fn_core_service_request(You_Core.FN_FULL_SCREEN_BTN_VIEW_READY, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
};
}
private void reInitPlayerViews() throws YouPlayerException{
LOG.v(TAG, "reInitPlayerViews", "start");
mPlayerBtmPlaySeekbar.setProgress(0);
mPlayerBtmImgbPrevious.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_prev);
mPlayerBtmImgbPlay.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_pause);
mPlayerBtmImgbNext.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_next);
// mPlayerBtmImgbSpeed.setImageResource(R.drawable.fullplayer_bottom_btn_speed10);
mPlayerBtmImgbPrevious.setEnabled(true);
mPlayerBtmImgbNext.setEnabled(true);
// mPlayerBtmImgbFullScreen.setEnabled(true);
// mPlayerBtmImgbMore.setEnabled(true);
((ImageView) mView.findViewById(R.id.full_audio_thumbnail)).setImageResource(R.drawable.youplayer_player_audio_thumbnail);
((TextView)mView.findViewById(R.id.bar_text_audio_file_value)).setText("");
((TextView)mView.findViewById(R.id.bar_text_audio_album_value)).setText("");
((TextView)mView.findViewById(R.id.bar_text_audio_singer_value)).setText("");
mPlayerCenterTips.setText("");
// mPlayerTopSysTimeText.setText("");
// mPlayerBtmMediaName.setText("");
// mPlayerBtmPlayState.setText("");
// mPlayerBtmTimeMin.setText("");
// mPlayerBtmTimeMax.setText("");
// mPlayerTopDecodeTypeText.setText("");
mPlayerSysSurfaceView.setVisibility(View.INVISIBLE);
mPlayerYouSurfaceView.setVisibility(View.INVISIBLE);
YouPlayerSubtitleView.titleStr = null;
mPlayerAdapter.destoryPlayerAdapter();
setPlayerSeekBarVolumeOrBrightVisibleChanged(PLAYER_UI_SHOW_TYPE_ALL_INVISIBLE);
setPlayerLyricViewVisibleChanged(false);
setPlayerMediaLayoutDefault();
setPlayerSeekbarIsEnable(false);
dismissSpeedPopupwindow();
dismissSubtitlePopupwindow();
mPlayerIsSeeking = false;
// mPlayerRelativeList.onDestoryed();
if(getPlayerIsLock()){
setPlayerUnlockAciton();
setPlayerIsLock(true);
}
mPlayerLyricView.setVisibility(View.INVISIBLE);
mPlayerGestureView.getLayoutParams().width = RelativeLayout.LayoutParams.FILL_PARENT;
}
private void initPlayerOnClickListener()throws YouPlayerException{
mPlayerBtmPlaySeekbar.setOnSeekBarChangeListener(playerOnSeekBarChangeListener);
// mPlayerBtmImgbMore.setOnClickListener(playerOnClickListener);
// mPlayerBtmImgbDlna.setOnClickListener(playerOnClickListener);
mPlayerBtmImgbPrevious.setOnClickListener(playerOnClickListener);
mPlayerBtmImgbPlay.setOnClickListener(playerOnClickListener);
mPlayerBtmImgbNext.setOnClickListener(playerOnClickListener);
// mPlayerBtmImgbFullScreen.setOnClickListener(playerOnClickListener);
mPlayerLyricView.setLyricTouchListener(playerLyricTouchListener);
mView.setOnTouchListener(mViewOnTouchListener);
mPlayerLockView.setOnTouchListener(mPlayerLockListener);
mPlayerUnlockImgBtn.setOnSlideListener(mPlayerUnlockBtnListener);
// mPlayerRelativeBtn.setOnClickListener(playerOnClickListener);
// mPlayerBtmImgbQuality.setOnClickListener(playerOnClickListener);
// mPlayerMask.setOnClickListener(playerOnClickListener);
}
private void initAudioThumbnailPos() {
int nScreenWidth = extScreenGetWidth();
int nScreenHeight = extScreenGetHeight();
float x_scale = ((float) nScreenWidth) / 800.0f;
float y_scale = ((float) nScreenHeight) / 480.0f;
LayoutParams params;
params = (LayoutParams) ((ImageView)mView.findViewById(R.id.full_audio_thumbnail_frame)).getLayoutParams();
params.width = (int) (178 * y_scale + 1);
params.height = (int) (160 * y_scale + 1);
params.leftMargin = (int) (56 * y_scale);
params.topMargin = (int) (50 * y_scale);
((ImageView)mView.findViewById(R.id.full_audio_thumbnail_frame)).setLayoutParams(params);
((ImageView)mView.findViewById(R.id.full_audio_thumbnail_frame)).setScaleType(ImageView.ScaleType.FIT_XY);
params = (LayoutParams) ((ImageView)mView.findViewById(R.id.full_audio_thumbnail)).getLayoutParams();
params.width = (int) (138 * y_scale + 1);
params.height = (int) (138 * y_scale + 1);
params.leftMargin = (int) (86 * y_scale);
params.topMargin = (int) (62 * y_scale);
((ImageView)mView.findViewById(R.id.full_audio_thumbnail)).setLayoutParams(params);
((ImageView)mView.findViewById(R.id.full_audio_thumbnail)).setScaleType(ImageView.ScaleType.FIT_XY);
params = (LayoutParams) ((ImageView)mView.findViewById(R.id.full_audio_thumbnail_reflection)).getLayoutParams();
params.width = (int) (178 * y_scale + 1);
params.height = (int) (16 * y_scale + 1);
params.leftMargin = (int) ((56) * y_scale);
((ImageView)mView.findViewById(R.id.full_audio_thumbnail_reflection)).setLayoutParams(params);
((ImageView)mView.findViewById(R.id.full_audio_thumbnail_reflection)).setScaleType(ImageView.ScaleType.FIT_XY);
params = (LayoutParams) ((RelativeLayout)mView.findViewById(R.id.full_audio_view_container)).getLayoutParams();
params.leftMargin = (int) ((56) * y_scale);
((RelativeLayout)mView.findViewById(R.id.full_audio_view_container)).setLayoutParams(params);
}
private void initPlayerGestureListener() {
LOG.v(TAG, "initPlayerGestureListener", "start");
YouOnGesture youOnGesture = new YouOnGesture(mContext);
youOnGesture.setYouOnGestureListener(new YouOnGesture.YouOnGestureListener() {
@Override
public void YouOnGestureStart() {
if(getGestureIsEnable() && getPlayerIsReadyToPlay()){
LOG.v(TAG, "initPlayerGestureListener", "YouOnGestureStart");
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_START, 0, null, null);
}
}
int width;
@Override
public void YouOnGestureMoveUPOrDown(boolean isEnableSeek, float distance,float start_x,boolean two_pointer) {
if(getGestureIsEnable()){
LOG.v(TAG, "initPlayerGestureListener", "YouOnGestureMoveUPOrDown");
if( width == 0 )
width = extScreenGetWidth();
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_UP_DOWN, 0, (int)distance,( (( width /2 < start_x )? 1:0)<<1 ) | (two_pointer?1:0));
}
}
@Override
public void YouOnGestureMovePrevious() {
if(getGestureIsEnable()){
LOG.v(TAG, "initPlayerGestureListener", "YouOnGestureMovePrevious");
onPlayerPreviousAction();
}
}
@Override
public void YouOnGestureMoveNext() {
if(getGestureIsEnable()){
LOG.v(TAG, "initPlayerGestureListener", "YouOnGestureMoveNext");
onPlayerNextAction();
}
}
@Override
public void YouOnGestureMoveLeftOrRight(boolean isEnableSeek, float distance) {
if(getGestureIsEnable() && getSeekIsEnable() ){
try {
setPlayerIsSeeking(true);
int seek_to = getGestureSeekPos(distance);
// L.v(TAG, "gestureListener", "YouOnGestureMoveLeftOrRight move distance:" + distance+"---"+ seek_to);
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_LEFT_RIGHT, 0, seek_to, null);
setSeekPreviewCallback();
} catch (YouPlayerException e) {
e.printStackTrace();
}
}
}
@Override
public void YouOnGestureEnd(boolean isEnableSeek, boolean isLeftOrRight) {
LOG.v(TAG, "initPlayerGestureListener", "YouOnGestureEnd isEnableSeek: " + isEnableSeek + " ,isLeftOrRight:" + isLeftOrRight);
if(getGestureIsEnable() && getPlayerIsReadyToPlay()){
removeSeekPreviewCallback();
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_END, 0, isEnableSeek, null);
if(getSeekIsEnable() && isEnableSeek && isLeftOrRight){
onRequestCoreServiceForSeek();
}
}
}
@Override
public void YouOnGesture() {
if(getGestureIsEnable() && getSeekIsEnable()){
LOG.v(TAG, "initPlayerGestureListener", "YouOnGesture");
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_SEEKING, 0, null, null);
}
}
});
mPlayerGestureView.addOnGestureListener(youOnGesture);
}
private void setPlayerGestureView(){
LOG.v(TAG, "setPlayerGestureView IsEnable:", getGestureIsEnable());
if(getGestureIsEnable()){
setPlayerGestureViewIsVisible(true);
}else{
setPlayerGestureViewIsVisible(false);
}
}
private void setPlayerUsedSurface() throws YouPlayerException{
LOG.v(TAG, "setPlayerUsedSurface IsSystemMediaPlayer:", getPlayerIsSystemMediaPlayer());
setCurrentSurfaceViewVisible(mPlayerAdapter.mMediaInfo.is_system_player);
}
private boolean getSeekIsEnable(){
if(mPlayerAdapter.getMediaInfoIsLive() || getPlayerIsOnlineAudio() || !getPlayerIsReadyToPlay()){
return false;
}
return true;
}
private void setPlayerMediaLayout(int mediaType)throws YouPlayerException{
LOG.v(TAG, "setPlayerMediaLayout mediaType: ", mediaType);
if(mPlayerAdapter.mMediaInfo != null && mPlayerAdapter.mMediaInfo.is_system_player == Player_type.PLAYER_TYPE_AIRONE) {
mediaType = You_player_media_info.Cls_you_media_type_e.YOU_AIRONE_VIDEO_MEDIA;
// mPlayerBtmImgbFullScreen.setEnabled(false);
// mPlayerBtmImgbFullScreen.setImageResource(R.drawable.youplayer_fullplayer_size_gray);
// mPlayerBtmImgbMore.setEnabled(false);
setBackgroundLogoIsShow(false);
} else {
// mPlayerBtmImgbFullScreen.setEnabled(true);
// mPlayerBtmImgbMore.setEnabled(true);
}
// this.showStartGuide();
switch(mediaType){
case You_player_media_info.Cls_you_media_type_e.YOU_ONLINE_VIDEO_MEDIA:
case You_player_media_info.Cls_you_media_type_e.YOU_LOCAL_VIDEO_MEDIA:
// mPlayerMediaVideoLayout.setVisibility(View.VISIBLE);
mPlayerMediaAudioLayout.setVisibility(View.INVISIBLE);
mPlayerMediaRadioLayout.setVisibility(View.INVISIBLE);
// mPlayerMediaAironeLayout.setVisibility(View.INVISIBLE);
// mPlayerBtmImgbDlna.setEnabled(true);
// mFlingAirControl.registerListener(this);
break;
case You_player_media_info.Cls_you_media_type_e.YOU_LOCAL_AUDIO_MEDIA:
// mPlayerMediaVideoLayout.setVisibility(View.INVISIBLE);
mPlayerMediaAudioLayout.setVisibility(View.VISIBLE);
mPlayerMediaRadioLayout.setVisibility(View.INVISIBLE);
// mPlayerMediaAironeLayout.setVisibility(View.INVISIBLE);
// mPlayerBtmImgbDlna.setEnabled(false);
// mFlingAirControl.unregisterListener();
break;
case You_player_media_info.Cls_you_media_type_e.YOU_ONLINE_AUDIO_MEDIA:
// mPlayerMediaVideoLayout.setVisibility(View.INVISIBLE);
mPlayerMediaAudioLayout.setVisibility(View.INVISIBLE);
mPlayerMediaRadioLayout.setVisibility(View.VISIBLE);
// mPlayerMediaAironeLayout.setVisibility(View.INVISIBLE);
// mPlayerBtmImgbDlna.setEnabled(true);
// mFlingAirControl.registerListener(this);
break;
case You_player_media_info.Cls_you_media_type_e.YOU_AIRONE_VIDEO_MEDIA:
// mPlayerMediaVideoLayout.setVisibility(View.INVISIBLE);
mPlayerMediaAudioLayout.setVisibility(View.INVISIBLE);
mPlayerMediaRadioLayout.setVisibility(View.INVISIBLE);
// mPlayerMediaAironeLayout.setVisibility(View.VISIBLE);
// mPlayerBtmImgbDlna.setEnabled(true);
// mFlingAirControl.registerListener(this);
break;
default:
break;
}
}
private void setPlayerMediaLayoutDefault(){
LOG.v(TAG, "setPlayerMediaLayoutDefault", "start");
// mPlayerMediaVideoLayout.setVisibility(View.INVISIBLE);
mPlayerMediaAudioLayout.setVisibility(View.INVISIBLE);
mPlayerMediaRadioLayout.setVisibility(View.INVISIBLE);
if(mPlayerYouSurfaceView != null)
mPlayerYouSurfaceView.setVisibility(View.INVISIBLE);
if(mPlayerSysSurfaceView != null)
mPlayerSysSurfaceView.setVisibility(View.INVISIBLE);
// mPlayerRelativeContainer.setVisibility(View.INVISIBLE);
// (mView.findViewById(R.id.fullplayer_topbar)).setVisibility(View.INVISIBLE);
if(mView != null)
{
View view = mView.findViewById(R.id.fullplayer_bottombar);
if(view != null)
{
view.setVisibility(View.INVISIBLE);
}
}
// (mView.findViewById(R.id.fullplayer_bottombar)).setVisibility(View.INVISIBLE);
}
private void setRelativeListVisible(boolean isVisible){
LOG.v(TAG, "setRelativeListVisible isVisible:", isVisible);
// if(isVisible){
// if( mPlayerRelativeContainer.getVisibility() != View.VISIBLE ){
// mPlayerRelativeContainer.setVisibility(View.VISIBLE);
// mPlayerRelativeList.setVisibility(View.GONE);
// }
// }else{
// if(mPlayerRelativeList.getVisibility() == View.VISIBLE){
// mPlayerRelativeContainer.setVisibility(View.INVISIBLE);
// mPlayerRelativeContainer.setAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_right_out));
// }
// else
// mPlayerRelativeContainer.setVisibility(View.INVISIBLE);
//
// }
}
private void setPlayerGestureViewIsVisible(boolean isVisible){
LOG.v(TAG, "setPlayerGestureViewIsVisible isVisible:", isVisible);
if(isVisible){
mPlayerGestureView.setVisibility(View.VISIBLE);
}else{
mPlayerGestureView.setVisibility(View.INVISIBLE);
}
}
private void setPlayerSeekBarProgress(int pos ){
mPlayerBtmPlaySeekbar.setProgress(pos);
}
private int getPlayerSeekBarProgress(){
return mPlayerBtmPlaySeekbar.getProgress();
}
public int[] extScreenGetContentRect() {
int[] pos = new int[4];
if(getObjectIsNull(mContext)){
return pos;
}
int width = extScreenGetWidth();
int height = extScreenGetHeight();
if (width < height) {
int temp = width;
width = height;
height = temp;
}
if(height >= 720)
{
pos[2] = 970 < width ? 970 : width;
pos[3] = 405;
}
else
{
pos[2] = mContext.getResources().getDimensionPixelSize(R.dimen.fullplayer_full_ad_pos_width);
pos[3] = mContext.getResources().getDimensionPixelSize(R.dimen.fullplayer_full_ad_pos_height);
}
pos[0] = (int)((width - pos[2])/2.0f + 0.5) ;
pos[1] = height - pos[3]- mContext.getResources().getDimensionPixelSize(R.dimen.fullplayer_full_bottom_button_group_layoutheight)-3;
return pos;
}
public int[] extScreenGetContentRect(int ad_width, int ad_height) {
int[] pos = new int[4];
if(getObjectIsNull(mContext)){
return pos;
}
try {
int top_height = 0;//((LinearLayout)mView.findViewById(R.id.fullplayer_topbar)).getHeight();
int bottom_height = ((RelativeLayout)mView.findViewById(R.id.fullplayer_bottombar)).getHeight();
int width = extScreenGetWidth();
int height = extScreenGetHeight();
if (width < height) {
int temp = width;
width = height;
height = temp;
}
if(ad_width > width){
ad_width = width;
LOG.e(TAG, "extScreenGetContentRect width", "error default value");
}
if(ad_height > (height - bottom_height - top_height)){
ad_height = height - bottom_height - top_height;
LOG.e(TAG, "extScreenGetContentRect height", "error default value");
}
pos[0] = (int)((width - ad_width)/2.0f + 0.5) ;
pos[1] = height - ad_height - bottom_height;
pos[2] = ad_width;
pos[3] = ad_height;
} catch (Exception e) {
e.printStackTrace();
}
return pos;
}
private int getGestureSeekPos(float move_x) throws YouPlayerException{
int temp_seek = (int) (move_x / ((float) extScreenGetWidth() / (float) mPlayerBtmPlaySeekbar.getMax()));
int cur_pos = mPlayerBtmPlaySeekbar.getProgress();
cur_pos -= temp_seek / 10;
if (cur_pos >= mPlayerBtmPlaySeekbar.getMax()){
cur_pos = mPlayerBtmPlaySeekbar.getMax() - 100;
}
if (cur_pos < 0){
cur_pos = 0;
}
LOG.v(TAG, "getGestureSeekPos", "cur_pos:" + cur_pos);
return cur_pos;
}
private View.OnClickListener playerOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
playerOnClick(v);
} catch (YouPlayerException e) {
LOG.v(TAG, "playerOnClickListener", "view:" + v);
e.printStackTrace();
}
}
};
private View.OnTouchListener mViewOnTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
LOG.v(TAG, "mViewOnTouchListener Action:", event.getAction() + "getGestureIsEnable:" + getGestureIsEnable());
if(event.getAction() == MotionEvent.ACTION_DOWN ){
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_END, You_Core.FN_UI_EVT_TOUCH_UP, false ,null);
return true;
}
return false;
}
};
private SeekBar.OnSeekBarChangeListener playerOnSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
LOG.v(TAG, "OnSeekBarChangeListener", "onStopTrackingTouch");
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_END, 0, true, null);
if(getSeekIsEnable()){
int pos = getPlayerSeekBarProgress();
LOG.v(TAG, "OnSeekBarChangeListener", "onStopTrackingTouch pos:" + pos);
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_SEEK,You_Core.FN_UI_EVT_TOUCH_UP, null, pos);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
LOG.v(TAG, "OnSeekBarChangeListener", "onStartTrackingTouch");
setPlayerIsSeeking(true);
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_START, 0, null, null);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
try {
if(getPlayerIsReadyToPlay()){
// L.v(TAG, "OnSeekBarChangeListener", "onProgressChanged:" + progress);
playerRefreshUIMaxAndMinTime(getCurrentTaskTotalDuration(), progress);
playerRefreshUILyricView(progress);
}
} catch (YouPlayerException e) {
e.printStackTrace();
}
}
};
private YouLyricView.LyricTouchListener playerLyricTouchListener = new YouLyricView.LyricTouchListener(){
@Override
public void onDragged(long time) {
mPlayerBtmPlaySeekbar.setProgress((int)time);
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_SEEK, You_Core.FN_UI_EVT_TOUCH_UP, null, (int)time);
}
@Override
public void onDragging(float x, float y, float nx, float ny,int width,int height) {
int temp_seek = (int) ((y-ny) / ((float) height / (float) mPlayerBtmPlaySeekbar.getMax()));
int cur_pos = mPlayerBtmPlaySeekbar.getProgress();
cur_pos += temp_seek / 3;
if (cur_pos >= mPlayerBtmPlaySeekbar.getMax())
cur_pos = mPlayerBtmPlaySeekbar.getMax() - 100;
if (cur_pos < 1)
cur_pos = 0;
LOG.v(TAG, "onDragging mViewOnTouchListener seeking .... ", cur_pos);
mPlayerBtmPlaySeekbar.setProgress(cur_pos);
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_SEEK, You_Core.FN_UI_EVT_TOUCH_UP, null, (int)cur_pos);
}
@Override
public void onPoint() {
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_END, You_Core.FN_UI_EVT_TOUCH_UP, false ,null);
}
@Override
public void onDragged(boolean left) {
LOG.v(TAG, "onDragged","draw x xol : left :"+left);
View view = mView.findViewById(R.id.full_audio_text_container);
if( left && view.getVisibility() == View.VISIBLE ){
view.setVisibility(View.GONE);
}else if( !left && view.getVisibility() == View.GONE ){
view.setVisibility(View.VISIBLE);
}
}
@Override
public void onSizeChanged(int width, int height) {
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams)mPlayerGestureView.getLayoutParams();
lp.width = extScreenGetWidth() - width;
lp.leftMargin = 0;
}
};
private View.OnTouchListener mPlayerLockListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_UP:
LOG.v(TAG, "mPlayerLockListener", "isLock: " + getPlayerIsLock());
if(getPlayerIsLock()){
setPlayerLockBtnVisibleChanged(true);
setPlayerLockRunnable();
}
return true;
default:
break;
}
return false;
}
};
private YouPlayerSlideView.onSlideFinishedListener mPlayerUnlockBtnListener = new YouPlayerSlideView.onSlideFinishedListener() {
@Override
public void OnSlideStart() {
setPlayerLockRunnableRemove();
}
@Override
public void OnSlideEnd(boolean isFinished) {
if(isFinished){
if(getPlayerIsLock()){
setPlayerUnlockAciton();
}
}else{
setPlayerLockRunnable();
}
}
};
private void playerOnClick(View v) throws YouPlayerException{
LOG.v(TAG, "playerOnClick", "start");
if((!getPlayerIsReadyToPlay() || !isAllControllPanelIsVisible())&& v.getId()!= R.id.fullplayer_mask ){
return;
}
switch(v.getId()){
case R.id.btn_quality1:{
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_DEFINITION, You_Core.FN_UI_EVT_TOUCH_UP, null, 1);
}
break;
case R.id.btn_quality2:{
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_DEFINITION, You_Core.FN_UI_EVT_TOUCH_UP, null, 2);
}
break;
case R.id.btn_quality3:{
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_DEFINITION, You_Core.FN_UI_EVT_TOUCH_UP, null, 3);
}
break;
case R.id.fullplayer_imgb_download:
onPlayerDownloadAction();
break;
case R.id.fullplayer_imgb_share:
onPlayerShareAction();
break;
case R.id.fullplayer_imgb_3d:
on3DAction();
break;
case R.id.fullplayer_imgb_track:
onPlayerTrackAction();
break;
case R.id.fullplayer_imgb_speed:
onPlayerSpeedAction();
break;
// case R.id.fullplayer_imgb_dlna:
//// m_airone_action = 0;
// //onDlnaAction();
// break;
// case R.id.fullplayer_btm_imgb_more:
// {
// // 如果为DLNA投放模式,则操作不可用
// if(mPlayerAdapter.mMediaInfo != null && mPlayerAdapter.mMediaInfo.is_system_player != Player_type.PLAYER_TYPE_AIRONE) {
// //0 1 2:1.5 3:2.0
// int speed = mSpeed;
// if( getPlayerIsSystemMediaPlayer() ){
// speed = 1;
// }
// final PopupWindow pw = YouPlayerMoreDialog.show(v,speed,playerOnClickListener);
// onNewExec.add(new IStopExec(){
//
// @Override
// public void onStop() {
// if( pw != null && pw.isShowing() )
// pw.dismiss();
//
// }
// });
//
// }
// break;
// }
case R.id.fullplayer_btm_imgb_lock:
onPlayerLockAction();
break;
case R.id.fullplayer_btm_imgb_previous:
mPlayerBtmImgbPrevious.setEnabled(false);
onPlayerPreviousAction();
break;
case R.id.fullplayer_btm_imgb_play:
onPlayerPlayAction();
break;
case R.id.fullplayer_btm_imgb_next:
mPlayerBtmImgbNext.setEnabled(false);
onPlayerNextAction();
break;
// case R.id.fullplayer_btm_imgb_quality:
// {
//
// if( mPlayerAdapter.mMediaInfo.current_dfnt == 0 ){
// //onRequestCoreService(PLAYER_FN_UI_MSG_TIPS_NOSUPPORT, fn_Core.FN_UI_EVT_TOUCH_UP, null, null);
// return;
// }
// final PopupWindow pw = YouPlayerQualityDialog.show(v,mPlayerAdapter.mMediaInfo.definition,mPlayerAdapter.mMediaInfo.current_dfnt,playerOnClickListener);
// if( pw == null ){
// //onRequestCoreService(PLAYER_FN_UI_MSG_TIPS_NOSUPPORT, fn_Core.FN_UI_EVT_TOUCH_UP, null, null);
// return;
// }
// onNewExec.add(new IStopExec(){
//
// @Override
// public void onStop() {
// if( pw != null && pw.isShowing() )
// pw.dismiss();
//
// }
//
// });
// break;
// }
// case R.id.fullplayer_btm_imgb_fullscreen:
// onPlayerFullScreenAction();
// break;
// case R.id.fullplayer_btn_relative:
// onRelativeBtnAction();
// onRequestCoreService(PLAYER_FN_UI_MSG_BTN_RELATIVE, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
case R.id.fullplayer_mask:
// m_showed = true;
// mPlayerMask.setVisibility(View.GONE);
// mPlayerBtmImgbDlna.setPressed(false);
default:
break;
}
}
private void onRelativeBtnAction(){
// if( mPlayerRelativeList.getVisibility() != View.GONE ){
// mPlayerRelativeList.setVisibility(View.GONE);
// } else{
// mPlayerRelativeList.setVisibility(View.VISIBLE);
// }
}
private void playerRefreshUILyricView(int progress){
if( getPlayerIsLocalAudio() && mPlayerLyricView.getVisibility() == View.VISIBLE ){
mPlayerLyricView.setTime(progress);
}
}
private void setPlayerIsBackground(boolean isBackground){
mPlayerIsGoToBackground = isBackground;
}
private void setPlayerIsSeeking(boolean isSeeking){
this.mPlayerIsSeeking = isSeeking;
}
public boolean getPlayerIsShowStop(){
return mPlayerAdapter.getPlayerIsShowStop();
}
private boolean getPlayerIsSeeking(){
return this.mPlayerIsSeeking;
}
public boolean getPlayerIsBackground(){
return this.mPlayerIsGoToBackground;
}
private boolean getPlayerIsReadyToPlay(){
return mPlayerAdapter.getPlayerIsReadyToPlay();
}
public int getPlayerPlayState(){
return mPlayerAdapter.getPlayerPlayState();
}
public boolean getPlayerIsOnlineAudio(){
return mPlayerAdapter.getPlayerIsOnlineAudio();
}
private boolean getPlayerIsLocalAudio(){
return mPlayerAdapter.getPlayerIsLocalAudio();
}
private boolean getPlayerIsLocalVideo(){
return mPlayerAdapter.getPlayerIsLocalVideo();
}
private boolean getPlayerIsVideoMedia(){
return mPlayerAdapter.getPlayerIsVideoMedia();
}
private boolean getPlayerIsPauseStatus(){
return mPlayerAdapter.getPlayerIsPauseStatus();
}
public boolean getPlayerIsCanFav(){
return mPlayerAdapter.getMediaInfoCanFav();
}
public boolean getPlayerIsCanCache(){
return mPlayerAdapter.getMediaInfoCanCache();
}
private void SpeedActionView(){
if(getObjectIsNull(mContext)){
LOG.e(TAG, "SpeedActionView", "mView is null");
return ;
}
int topbar_height = 0;//(mView.findViewById(R.id.fullplayer_topbar)).getHeight();
int bottombar_height = (mView.findViewById(R.id.fullplayer_bottombar)).getHeight();
int tmp_height = topbar_height + bottombar_height;
final int item_h = (extScreenGetHeight() - tmp_height )/4;
final int item_w = YouPlayerRelativeList.getRelativeWidth();
mPopupWindowSpeed = new PopupWindow(mContext);
final String[] speeds = mContext.getResources().getStringArray(R.array.player_speeds);
View contentView = LayoutInflater.from(mContext).inflate(R.layout.youplayer_player_speedlist, null);
ListView list = (ListView) contentView.findViewById(R.id.list_playerspeeds);
list.setAdapter(new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView text = new TextView(mContext);
text.setTextColor(Color.WHITE);
text.setText(getItem(position).toString());
text.setGravity(Gravity.CENTER_VERTICAL);
text.setPadding(10, 0, 0, 0);
text.setLayoutParams(new AbsListView.LayoutParams(item_w,item_h));
return text;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public Object getItem(int position) {
return speeds[position];
}
@Override
public int getCount() {
return speeds.length;
}
});
list.setFocusable(false);
list.setCacheColorHint(0x00000000);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
LOG.v(TAG, "SpeedActionView index:", arg2);
try {
mSpeed = arg2;
onRequestServiceSpeed(arg2);
dismissSpeedPopupwindow();
} catch (Exception e) {
e.printStackTrace();
}
}
});
mPopupWindowSpeed.setBackgroundDrawable(new ColorDrawable(Color.argb(0, 0, 0, 0)));
mPopupWindowSpeed.setContentView(contentView);
mPopupWindowSpeed.setFocusable(true);
mPopupWindowSpeed.setWidth(item_w);
mPopupWindowSpeed.setHeight(extScreenGetHeight() - tmp_height);
// mPopupWindowSpeed.showAtLocation(mPlayerBtmImgbMore, Gravity.TOP|Gravity.LEFT, 0,topbar_height );
mPopupWindowSpeed.setAnimationStyle(R.style.AnimationFade);
mPopupWindowSpeed.update();
}
private void dismissSpeedPopupwindow(){
if(mPopupWindowSpeed != null){
mPopupWindowSpeed.dismiss();
mPopupWindowSpeed = null;
}
}
private void dismissSubtitlePopupwindow(){
if(mPlayerAudioSubtitle != null){
mPlayerAudioSubtitle.closeWindow();
mPlayerAudioSubtitle = null;
}
}
private void onPlayerSpeedAction() {
LOG.v(TAG, "onPlayerSpeedAction", "start");
if(!getPlayerIsSystemMediaPlayer() && (getPlayerIsLocalVideo()|| getPlayerIsLocalAudio())){
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_MENU, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
SpeedActionView();
}else{
onRequestCoreService(PLAYER_FN_UI_MSG_SPEED_TIPS_NOSUPPORT, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
}
private void onPlayerNextAction() {
LOG.v(TAG, "onPlayerNextAction", "request");
if(mPlayerAdapter.getMediaInfoHasNext()){
// setPlayerViewsInitalizeValue();
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_NEXT, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}else{
onRequestCoreService(PLAYER_FN_UI_MSG_NEXT_TIPS_NOSUPPORT, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
mPlayerBtmImgbNext.setEnabled(true);
}
}
private void onPlayerPlayAction() throws YouPlayerException{
setPanelStatePlayOrPauseRequset(getPlayerPlayState());
}
private void setPanelStatePlayOrPauseRequset(int playState) {
LOG.v(TAG, "setPanelStatePlayOrPauseRequset playState:", playState);
switch(playState){
case You_full_screen_player_data_to_ui.Cls_you_player_status.NoneStatus:
break;
case You_full_screen_player_data_to_ui.Cls_you_player_status.OpenningStatus:
break;
case You_full_screen_player_data_to_ui.Cls_you_player_status.PlayingStatus:
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_PAUSE, You_Core.FN_UI_EVT_TOUCH_UP, null, 0);
break;
case You_full_screen_player_data_to_ui.Cls_you_player_status.PauseStatus:
if(!getPlayerIsSystemMediaPlayer() && getPlayerIsVideoMedia()
&& mPlayerYouSurfaceView.getVisibility() != View.VISIBLE){
mPlayerYouSurfaceView.setVisibility(View.VISIBLE);
}
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_PLAY, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
break;
case You_full_screen_player_data_to_ui.Cls_you_player_status.BufferingStatus:
break;
default:
break;
}
}
private void onPlayerPreviousAction() {
LOG.v(TAG, "onPlayerPreviousAction", "request");
if(mPlayerAdapter.getMediaInfoHasPrevious()){
// setPlayerViewsInitalizeValue();
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_PREVIOUS, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}else{
onRequestCoreService(PLAYER_FN_UI_MSG_PREVIOUS_TIPS_NOSUPPORT, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
mPlayerBtmImgbPrevious.setEnabled(true);
}
}
private void onPlayerTrackAction() {
LOG.v(TAG, "onPlayerTrackAction", "request");
if( mPlayerAdapter.mMediaInfo.is_system_player != Player_type.PLAYER_TYPE_SYSTEM && (getPlayerIsLocalVideo() || getPlayerIsLocalAudio())){
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_MENU, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_AUDIO_CHANNEL, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}else{
onRequestCoreService(PLAYER_FN_UI_MSG_TRACK_TIPS_NOSUPPORT, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
}
private void onPlayerDownloadAction(){
LOG.v(TAG, "onPlayerDownloadAction", "request");
try {
if(!getPlayerIsCanCache()){
playerRefreshUITip(playerGetResource(R.string.fullplayer_undownload_tip), PLAYER_TIPS_UI_FONT_SIZE_SMALL);
onRequestCoreService(PLAYER_FN_UI_MSG_TIPS_DOWNLOAD_INVISIBLITY, You_Core.FN_UI_EVT_TOUCH_UP ,null, null);
}else{
String message = YouUtility.getDeclaretion(YouExplorer.instance, YouPlayerConstant.YOU_DECLARETION_TYPE_DOWNLOAD);
final AlertDialog dialog = new AlertDialog.Builder(YouExplorer.instance)
.setTitle(R.string.declaration_text)
.setMessage(message)
.setPositiveButton(R.string.dialog_ok, new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Cls_download_request_list_t coreData = new Cls_download_request_list_t(1, new int[]{0});
// EventControler.fn_core_service_request(fn_Core.FN_COMMON_BTN_CACHE, fn_Core.FN_UI_EVT_TOUCH_UP, 0,coreData);
}
})
.setNegativeButton(R.string.dialog_cancel, null)
.setCancelable(true).create();
dialog.show();
onDestoryExec.add(new IStopExec(){
@Override
public void onStop() {
if( dialog != null && dialog.isShowing() )
dialog.dismiss();
}
});
}
} catch (YouPlayerException e) {
e.printStackTrace();
}
}
private void onPlayerLockAction(){
LOG.v(TAG, "onPlayerLockAction", "request");
// mPlayerRelativeList.setVisibility(View.GONE);
onRequestCoreService(PLAYER_FN_UI_MSG_LOCK, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
private void setPlayerLockViewVisibleChanged(boolean isVisible){
if(isVisible && mPlayerLockView != null && mPlayerLockView.getVisibility() != View.VISIBLE){
mPlayerLockView.setVisibility(View.VISIBLE);
}else if(!isVisible && mPlayerLockView != null && mPlayerLockView.getVisibility() == View.VISIBLE){
mPlayerLockView.setVisibility(View.INVISIBLE);
}
}
private void setPlayerLockRunnableRemove(){
if(mPlayerLockHandler != null){
LOG.v(TAG, "setPlayerLockRunnableRemove", "start");
mPlayerLockHandler.removeCallbacks(mPlayerLockRunnable);
}
}
private void setPlayerLockRunnable(){
setPlayerLockRunnableRemove();
if(mPlayerLockHandler != null){
LOG.v(TAG, "setPlayerLockRunnable", "start");
mPlayerLockHandler.postDelayed(mPlayerLockRunnable, 2000);
}
}
private void setPlayerUnlockAciton(){
LOG.v(TAG, "setPlayerUnlockAciton", "isLock: " + getPlayerIsLock());
try {
if(getPlayerIsLock()){
setPlayerIsLock(false);
setPlayerLockRunnableRemove();
setPlayerLockViewVisibleChanged(false);
setPlayerLockBtnVisibleChanged(false);
playerSetUITipInVisible();
//解锁,UI PANEL 显示
onRequestCoreService(PLAYER_FN_UI_EVT_PAGE_SEEK_END, You_Core.FN_UI_EVT_TOUCH_UP, false ,null);
}
} catch (YouPlayerException e) {
e.printStackTrace();
}
}
private Handler mPlayerLockHandler = new Handler();
private Runnable mPlayerLockRunnable = new Runnable(){
@Override
public void run() {
setPlayerLockBtnVisibleChanged(false);
}
};
private void setPlayerLockBtnVisibleChanged(boolean isVisible){
if(isVisible && mPlayerUnlockImgBtn != null && mPlayerUnlockImgBtn.getVisibility() != View.VISIBLE){
mPlayerUnlockImgBtn.setVisibility(View.VISIBLE);
}else if(!isVisible && mPlayerUnlockImgBtn != null && mPlayerUnlockImgBtn.getVisibility() == View.VISIBLE){
mPlayerUnlockImgBtn.setVisibility(View.INVISIBLE);
}
}
private void setPlayerIsLock(boolean isLock){
this.mPlayerIsLocked = isLock;
}
public boolean getPlayerIsLock(){
return mPlayerIsLocked;
}
private void onPlayerShareAction() {
LOG.v(TAG, "onPlayerShareAction", "request");
if( !getPlayerIsCanFav() ){
onRequestCoreService(PLAYER_FN_UI_MSG_SHARE_TIPS_NOSUPPORT, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
return;
}
//onRequestCoreService(fn_Core.FN_FULL_SCREEN_BTN_MENU, fn_Core.FN_UI_EVT_TOUCH_UP, null, null);
//onRequestCoreService(PLAYER_FN_UI_MSG_PLAY_SHARE, fn_Core.FN_UI_EVT_TOUCH_UP, null, null);
if( !getPlayerIsPauseStatus() )
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_PAUSE, You_Core.FN_UI_EVT_TOUCH_UP, null, 0);
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_SHARE, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
private void on3DAction() {
LOG.v(TAG, "on3DAction", "request");
if( ( mPlayerAdapter.getMediaInfoMediaType() == Cls_you_media_type_e.YOU_LOCAL_VIDEO_MEDIA
|| mPlayerAdapter.getMediaInfoMediaType() == Cls_you_media_type_e.YOU_ONLINE_VIDEO_MEDIA) )
{
if( mPlayerAdapter.mMediaInfo.is_system_player == Player_type.PLAYER_TYPE_SOFT ){
int is_3d;
if(mPlayerAdapter.getMediaInfoIs3D())
{
is_3d = 0;
}
else
is_3d = 1;
mPlayerAdapter.setMediaInfoIs3D(!mPlayerAdapter.getMediaInfoIs3D());
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_3D, You_Core.FN_UI_EVT_TOUCH_UP, is_3d, is_3d);
return;
}
}
onRequestCoreService(PLAYER_FN_UI_MSG_TIPS_3D_NOSUPPORT, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
private void onRequestServiceSpeed(int selectIndex){
LOG.v(TAG, "onPlayerShareAction selectIndex: ", selectIndex);
int index = You_full_screen_player_data_to_ui.Cls_you_player_rate.YOU_PLAYER_NORMAL;
switch(selectIndex){
case PLAYER_PLAY_SPEED_08:
index = You_full_screen_player_data_to_ui.Cls_you_player_rate.YOU_PLAYER_LOW;
break;
case PLAYER_PLAY_SPEED_10:
index = You_full_screen_player_data_to_ui.Cls_you_player_rate.YOU_PLAYER_NORMAL;
break;
case PLAYER_PLAY_SPEED_15:
index = You_full_screen_player_data_to_ui.Cls_you_player_rate.YOU_PLAYER_HIGH;
break;
case PLAYER_PLAY_SPEED_20:
index = You_full_screen_player_data_to_ui.Cls_you_player_rate.YOU_PLAYER_TWO;
break;
default:
break;
}
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_RATE, You_Core.FN_UI_EVT_TOUCH_UP, (Integer)index, (Integer)index);
}
private void onPlayerFullScreenAction(){
LOG.v(TAG, "onPlayerFullScreenAction", "request");
if(!getPlayerIsOnlineAudio()){
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_MODE_CHANGE, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}else{
onRequestCoreService(PLAYER_FN_UI_MSG_TIPS_NOSUPPORT, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
}
private void setBackgroundLogoIsShow(boolean isShow){
LOG.v(TAG, "setBackgroundLogoIsShow isShow: ", isShow);
if(isShow){
mPlayerBackgroundLogo.setVisibility(View.VISIBLE);
}else{
mPlayerBackgroundLogo.setVisibility(View.INVISIBLE);
}
}
private void initPlayerBatteryPowerListener() throws YouPlayerException{
mPlayerPhonePower = YouPhonePowerUtil.getInstance();
mPlayerPhonePower.registerPeceiver(mContext.getApplicationContext());
mPlayerPhonePower.setPhonePowerListener(new YouPhonePowerListener() {
@Override
public void powerChange(int level, int scale) {
int currentPercent = level*10 / scale;
if(mPlayerBatteryPercent != currentPercent){
try {
// mPlayerTopImgvBattery.setImageResource(BatteryDrawableArray[currentPercent]);
mPlayerBatteryPercent = currentPercent;
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
}
private void uninitPlayerBatteryPowerListener(){
if (mPlayerPhonePower != null && mContext != null) {
mPlayerPhonePower.unregisterPeceiver(mContext.getApplicationContext());
mPlayerPhonePower = null;
}
}
private String playerGetResource(int id){
String res = "";
if(!getObjectIsNull(mContext)){
res = mContext.getResources().getString(id);
}
return res;
}
private void setPlayerPlayStateText(int type){
int resId = R.string.fullplayer_media_space;
switch(type){
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_OPENNING:
if(getPlayerIsSystemMediaPlayer()){
resId = R.string.fullplayer_media_open_with_sys;
}else{
resId = R.string.fullplayer_media_open_with_fone;
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_OPENSUCCESS:
resId = R.string.fullplayer_media_open_success;
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_READY_TO_PLAY:
resId = R.string.fullplayer_media_space;
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_CONN_TIME_OUT:
resId = R.string.fullplayer_media_space;
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_CONN_RESET:
resId = R.string.fullplayer_media_space;
break;
default:
break;
}
// mPlayerBtmPlayState.setText(playerGetResource(resId));
}
private void setPanelStatePlayOrPause(int playStatus)throws YouPlayerException{
LOG.v(TAG, "setPanelStatePlayOrPause playStatus: ", playStatus);
switch(playStatus){
case You_full_screen_player_data_to_ui.Cls_you_player_status.NoneStatus:
break;
case You_full_screen_player_data_to_ui.Cls_you_player_status.OpenningStatus:
break;
case You_full_screen_player_data_to_ui.Cls_you_player_status.PlayingStatus:
mPlayerBtmImgbPlay.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_play);
if(!getPlayerIsOnlineAudio()){
setBackgroundLogoIsShow(false);
}
break;
case You_full_screen_player_data_to_ui.Cls_you_player_status.PauseStatus:
mPlayerBtmImgbPlay.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_pause);
break;
case You_full_screen_player_data_to_ui.Cls_you_player_status.BufferingStatus:
break;
default:
break;
}
}
public int getPlayerSeekBarVolumeOrBrightIsVisible(){
LOG.v(TAG, "getPlayerSeekBarVolumeOrBrightIsVisible", "start");
if(mPlayerSeekbarVolume.getVisibility() == View.VISIBLE
&& mPlayerSeekbarBrightness.getVisibility() != View.VISIBLE){
return PLAYER_UI_SHOW_TYPE_VOLUME_VISIBLE;
}
if(mPlayerSeekbarBrightness.getVisibility() == View.VISIBLE
&& mPlayerSeekbarVolume.getVisibility() != View.VISIBLE){
return PLAYER_UI_SHOW_TYPE_BRIGHT_VISIBLE;
}
return PLAYER_UI_SHOW_TYPE_ALL_INVISIBLE;
}
private void setPlayerSeekBarVolumeOrBrightVisibleChanged(int type){
LOG.v(TAG, "setPlayerSeekBarVolumeOrBrightVisibleChanged type:", type);
switch(type){
case PLAYER_UI_SHOW_TYPE_VOLUME_VISIBLE:
mPlayerSeekbarVolume.setVisibility(View.VISIBLE);
mPlayerSeekbarBrightness.setVisibility(View.INVISIBLE);
break;
case PLAYER_UI_SHOW_TYPE_BRIGHT_VISIBLE:
mPlayerSeekbarVolume.setVisibility(View.INVISIBLE);
mPlayerSeekbarBrightness.setVisibility(View.VISIBLE);
break;
case PLAYER_UI_SHOW_TYPE_ALL_INVISIBLE:
mPlayerSeekbarVolume.setVisibility(View.INVISIBLE);
mPlayerSeekbarBrightness.setVisibility(View.INVISIBLE);
break;
default:
break;
}
}
private void setPanelStateVolumeOrBrightSize(float size)throws YouPlayerException{
if(mContext == null){
LOG.v(TAG, "setPanelStateVolumeOrBrightSize", "mContext is null");
return;
}
LOG.v(TAG, "setPanelStateVolumeOrBright size: ", String.valueOf(size));
if(mPlayerSeekbarVolume.getVisibility() == View.VISIBLE){
mPlayerSeekbarVolume.adjust((-size / 2.0f) /mPlayerGestureView.getHeight());
if( mPlayerAdapter.mMediaInfo.is_system_player == Player_type.PLAYER_TYPE_AIRONE ){
LOG.v(TAG, "setPlayVolume", "fullplayer set vol:"+mPlayerSeekbarVolume.getVol());
YouPlayerEventControler.fn_core_service_request(You_Core.FN_FULL_SCREEN_BTN_AIRONE_VOLUME,You_Core.FN_UI_EVT_TOUCH_UP ,null, mPlayerSeekbarVolume.getVol()*10 );
}
}else if(mPlayerSeekbarBrightness.getVisibility() == View.VISIBLE){
mPlayerSeekbarBrightness.adjust((YouExplorer.instance).getWindow(), ((-size / 2.0f) / mPlayerGestureView.getHeight()));
}
}
private void setPlayerAudioFullScreenState(int audioType)throws YouPlayerException{
LOG.v(TAG, "setPlayerVideoFullScreenState audioType:", audioType);
switch(audioType){
case You_player_media_info.Cls_fn_music_circle_mode.CIRCLE_ENTIRE_MODE:
// mPlayerBtmImgbFullScreen.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_loop_whole);
break;
case You_player_media_info.Cls_fn_music_circle_mode.CIRCLE_RANDOM_MODE:
// mPlayerBtmImgbFullScreen.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_loop_random);
break;
case You_player_media_info.Cls_fn_music_circle_mode.CIRCLE_SINGLE_MODE:
// mPlayerBtmImgbFullScreen.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_loop_self);
break;
default:
break;
}
}
private void setPlayerVideoFullScreenState(int screenType)throws YouPlayerException{
LOG.v(TAG, "setPlayerVideoFullScreenState screenType:", screenType);
switch(screenType){
case You_player_media_info.Cls_you_player_render_mode.VIDEO_FULL_SCR:
// mPlayerBtmImgbFullScreen.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_fullscreen);
break;
case You_player_media_info.Cls_you_player_render_mode.VIDEO_ORIGINAL_SCR:
// mPlayerBtmImgbFullScreen.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_original);
break;
case You_player_media_info.Cls_you_player_render_mode.VIDEO_ASPECT_FULL_SCR:
// mPlayerBtmImgbFullScreen.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_aspect);
break;
default:
break;
}
}
private void playerRefreshUIMaxAndMinTime(int total, int current) throws YouPlayerException{
if(mPlayerAdapter.getMediaInfoIsLive()){
// mPlayerBtmTimeMin.setText("");
// mPlayerBtmTimeMax.setText("");
}else{
String max = extGetTimeStringFromTime(total);
String min = extGetTimeStringFromTime(current);
// mPlayerBtmTimeMin.setText(min);
// mPlayerBtmTimeMax.setText(max);
}
}
public String extGetTimeStringFromTime(int time) throws YouPlayerException{
if (time < 0){
time = 0;
}
long Hours = time / 3600000;
long Minutes = (time / 60000) % 60;
long Seconds = (time / 1000) % 60;
String formatTime = "";
if (Hours > 0) {
formatTime = String.format("%1$02d:%2$02d:%3$02d", Hours, Minutes, Seconds);
} else {
formatTime = String.format("%1$02d:%2$02d", Minutes, Seconds);
}
return formatTime;
}
private void playerRefreshUITip(String tips, float size) throws YouPlayerException{
mPlayerCenterTips.setVisibility(View.VISIBLE);
mPlayerCenterTips.setTextSize(size);
mPlayerCenterTips.setText(tips);
}
private void playerSetUITipInVisible() throws YouPlayerException{
if(mPlayerCenterTips.getVisibility() == View.VISIBLE){
mPlayerCenterTips.setVisibility(View.INVISIBLE);
}
}
private void playerSetUIPanelShow() throws YouPlayerException{
if(!getObjectIsNull(mView) && !isAllControllPanelIsVisible()){
// mView.findViewById(R.id.fullplayer_topbar).setVisibility(View.VISIBLE);
// mView.findViewById(R.id.fullplayer_topbar).refreshDrawableState();
// mView.findViewById(R.id.fullplayer_topbar).invalidate();
mView.findViewById(R.id.fullplayer_bottombar).setVisibility(View.VISIBLE);
}
}
private void toHidePanel() throws YouPlayerException{
if(!getObjectIsNull(mView) && isAllControllPanelIsVisible()){
// (mView.findViewById(R.id.fullplayer_topbar)).setVisibility(View.INVISIBLE);
(mView.findViewById(R.id.fullplayer_bottombar)).setVisibility(View.INVISIBLE);
setPlayerSeekBarVolumeOrBrightVisibleChanged(PLAYER_UI_SHOW_TYPE_ALL_INVISIBLE);
setRelativeListVisible(false);
toExecuteNews();
}
}
public boolean isAllControllPanelIsVisible() {
if(getObjectIsNull(mView)){
LOG.e(TAG, "isAllControllPanelIsVisible", "mView is null");
return false;
}
// if ((mView.findViewById(R.id.fullplayer_topbar)).getVisibility() != View.VISIBLE){
// return false;
// }
if ((mView.findViewById(R.id.fullplayer_bottombar)).getVisibility() != View.VISIBLE){
return false;
}
return true;
}
private void playerRefreshUITopPanel()throws YouPlayerException{
playerRefreshUISystemTime();
String mpe="";
switch( mPlayerAdapter.mMediaInfo.is_system_player ){
case Player_type.PLAYER_TYPE_AIRONE:
mpe = playerGetResource(R.string.aieonedecode);
break;
case Player_type.PLAYER_TYPE_HARD_SOFT:
mpe = playerGetResource(R.string.softharddecode);
break;
case Player_type.PLAYER_TYPE_SOFT:
mpe = playerGetResource(R.string.softwaredecode);
break;
case Player_type.PLAYER_TYPE_SYSTEM:
mpe = playerGetResource(R.string.hardwaredecode);
break;
}
// mPlayerTopDecodeTypeText.setText(mpe);
// if( !getPlayerIsLocalAudio()&&!getPlayerIsLocalVideo() ){
// mView.findViewById(R.id.fullplayer_top_url_panel).setVisibility(View.VISIBLE);
// }else{
// mView.findViewById(R.id.fullplayer_top_url_panel).setVisibility(View.GONE);
// }
}
private void setPlayerControllPanelVisible(boolean isVisible){
LOG.v(TAG, "setPlayerControllPanelVisible isVisible : ", isVisible);
try {
if(isVisible){
playerSetUIPanelShow();
playerRefreshUITopPanel();
}else {
if(isAllControllPanelIsVisible()){
playerSetUIPanelHideAnimation();
toHidePanel();
}
}
setRelativeListVisible(isVisible);
} catch (YouPlayerException e) {
e.printStackTrace();
}
}
private void playerSetUIPanelHideAnimation() throws YouPlayerException{
if(!getObjectIsNull(mView)){
// (mView.findViewById(R.id.fullplayer_topbar)).startAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_up_out));
(mView.findViewById(R.id.fullplayer_bottombar)).startAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_down_out));
}
}
private void playerRefreshUISystemTime() {
// if( mPlayerTopSysTimeText.getVisibility() == View.VISIBLE ){
// Date date = new Date();
// long hour = date.getHours();
// long min = date.getMinutes();
// mPlayerTopSysTimeText.setText(String.format("%1$02d:%2$02d", hour, min));
// }
}
public void doPlayerErrorAction(int errorCode,int value){
LOG.v(TAG, "doPlayerErrorAction errorCode:", errorCode);
int errorMessageID = R.string.fullplayer_media_unknow_error;
switch (errorCode) {
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_NO_NET_FAILED:
errorMessageID = R.string.network_error;
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_OPEN_FAILED:
errorMessageID = R.string.fullplayer_media_open_fail;
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_LIVE_MEDIA_DISCONNECT:
errorMessageID = R.string.fullplayer_media_file_content_not_exist;
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_NO_DATA_FAILED:
errorMessageID = R.string.fullplayer_media_file_content_not_exist;
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_CONN_TIME_OUT:
errorMessageID = R.string.fullplayer_media_file_content_not_exist;
break;
case PLAYER_FN_UI_MSG_SELF_NET_TIMER_OUT_ACTION:
errorMessageID = R.string.fullplayer_media_file_server_overtime;
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_FILE_NOT_EXIST:
if( value == 0 )
errorMessageID = R.string.fullplayer_media_file_not_get;
else
errorMessageID = R.string.fullplayer_media_file_not_exist;
break;
default:
errorMessageID = R.string.fullplayer_media_unknow_error;
break;
}
// if( false && errorMessageID == R.string.fullplayer_media_open_fail){
// try{
// java.io.FileWriter fw = new java.io.FileWriter(new File("/sdcard/analyzeOpenFailed.log"),true);
// SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// String dateTime = dateFm.format(new java.util.Date());
// fw.append("\n\r"+dateTime+" java show:open fail!"+"\n\r");
// fw.close();
// }catch(Exception e){
// e.printStackTrace();
// }
// }
//
showErrorExitDialog(errorMessageID);
}
private void playerExitOnRequest(){
LOG.v(TAG, "playerExitOnRequest", "start");
YouPlayerEventControler.fn_core_service_request(You_Core.FN_FULL_SCREEN_BTN_DONE, You_Core.FN_UI_EVT_TOUCH_UP ,null, null);
}
private AlertDialog error_dialog;
public void showErrorExitDialog(int messageResourceID){
setPlayerUnlockAciton();
if( error_dialog != null ){
LOG.v(TAG, "playerExitOnRequest", "error_dialog has exist");
return;
}
String message = playerGetResource(messageResourceID);
error_dialog = new AlertDialog.Builder(YouExplorer.instance)
.setTitle(R.string.dialog_title)
.setPositiveButton(R.string.dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface a0, int a1) {
dismissErrorExitDialog();
}
}).setMessage(message).create();
error_dialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
LOG.v(TAG, "playerExitOnRequest", "onDismiss");
playerExitOnRequest();
}
});
error_dialog.setCanceledOnTouchOutside(false);
error_dialog.show();
}
public void dismissErrorExitDialog(){
LOG.v(TAG, "dismissErrorExitDialog", "start");
if(error_dialog != null){
error_dialog.dismiss();
error_dialog = null;
}
}
@Override
public View getView() {
return super.getView();
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
return super.dispatchKeyEvent(event);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return super.dispatchTouchEvent(ev);
}
@Override
public void finish() {
LOG.v(TAG, "finish", "finish");
super.finish();
}
@Override
public int getTag() {
return super.getTag();
}
@Override
public Dialog onCreateDialog(int id) {
return super.onCreateDialog(id);
}
@Override
public void onPause() {
LOG.v(TAG, "onPause", "onPause");
super.onPause();
// mFlingAirControl.unregisterListener();
}
@Override
public void onRestart() {
LOG.v(TAG, "onRestart", "onRestart");
super.onRestart();
}
public void setPlayerWaitingAction(boolean isWaiting){
LOG.v(TAG, "setPlayerWaitingAction", isWaiting);
if(!getObjectIsNull(mView)){
if(isWaiting){
mView.findViewById(R.id.fullplayer_waitting_layout).setVisibility(View.VISIBLE);
}else{
mView.findViewById(R.id.fullplayer_waitting_layout).setVisibility(View.INVISIBLE);
}
}
}
public void playerGoBackground(){
LOG.v(TAG, "playerGoBackground", "start");
dismissSpeedPopupwindow();
dismissSubtitlePopupwindow();
// dismissSelectAireOnePopupwindow();
dismissErrorExitDialog();
setPlayerIsBackground(true);
setPlayerUnlockAciton();
if(getPlayerIsVideoMedia()){
setBackgroundLogoIsShow(true);
}
if(getPlayerIsPauseStatus()){
uninitPlayerBatteryPowerListener();
}
if(mPlayerAdapter.getMediaInfoIsLive() || getPlayerIsOnlineAudio() ){
LOG.v(TAG, "playerGoBackground", "fn_full_screen_btn_done");
doPlayerADHideAllAction();
YouPlayerEventControler.fn_core_service_request(You_Core.FN_FULL_SCREEN_BTN_DONE, You_Core.FN_UI_EVT_TOUCH_UP ,null, null);
}else{
LOG.v(TAG, "playerGoBackground", "fn_full_screen_btn_enter_background");
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_ENTER_BACKGROUND, You_Core.FN_UI_EVT_TOUCH_UP ,null, null);
sendNotification();
}
}
public void playerGoForeground(){
LOG.v(TAG, "playerGoForeground", "start");
setPlayerIsBackground(false);
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_ENTER_FOREGROUND, You_Core.FN_UI_EVT_TOUCH_UP ,null, null);
if(getPlayerIsVideoMedia()){
mPlayerAdapter.setPlayerRefreshUISurfaceCB();
}
setPlayerControllPanelVisible(true);
if (null == sdcardEjectReceiver) {
initSdcardStateReceiver();
}
if (null == phoneStateReceiver) {
initTelephoneReceiver();
}
removeNotification();
}
@Override
public void onResume() {
LOG.v(TAG, "onResume", "onResume");
super.onResume();
}
@Override
public void onStart() {
LOG.v(TAG, "onStart", "onStart");
super.onStart();
}
@Override
public void onStop() {
LOG.v(TAG, "onStop", "onStop");
for(IStopExec exec : onDestoryExec)
exec.onStop();
onDestoryExec.clear();
toExecuteNews();
super.onStop();
}
private void toExecuteNews(){
for(IStopExec exec:onNewExec)
exec.onStop();
onNewExec.clear();
}
public boolean onTouchEvent(MotionEvent event) {
LOG.v(TAG, "onTouchEvent", "onTouchEvent");
return super.onTouchEvent(event);
}
@Override
public void setTag(int tag) {
super.setTag(tag);
}
@Override
public void onDestroy() {
LOG.v(TAG, "onDestroy ", "start");
try {
doPlayerADHideAllAction();
setPlayerIsBackground(false);
//setRelativeListVisible(false);
setPlayerWaitingAction(false);
setPlayerIsSeeking(false);
setPlayerMediaLayoutDefault();
setPlayerIsLock(false);
setPlayerLockViewVisibleChanged(false);
setPlayerLockBtnVisibleChanged(false);
setPlayerLockRunnableRemove();
removeNotification();
removeNotification();
uninitPlayerBatteryPowerListener();
uninitSdcardReceiver();
uninitTelephoneReceiver();
// uninitShakeListener();
uninitMediaTask();
uninitScreenOffRegisters();
dismissSpeedPopupwindow();
dismissSubtitlePopupwindow();
// dismissSelectAireOnePopupwindow();
dismissErrorExitDialog();
// mPlayerRelativeList.onDestoryed();
mPlayerSeekbarBrightness.reset();
mPlayerGestureView.removeAllOnGestureListeners();
//mPlayerTopImgbChangeBright.setImageResource(R.drawable.fullplayer_icon_save_power);
// mPlayerAdManager.onClearMap();
mPlayerAdapter.destoryPlayerAdapter();
Player_UIManager.freeBitmap();
viewHasRemove();
} catch (Exception e) {
e.printStackTrace();
}
LOG.v(TAG, "onDestroy ", "end");
}
public void setSurfaceWidthHeight( int width, int height) {
LOG.v(TAG, "setSurfaceWidthHeight w:", width + " ,h" + height);
if (width < height) {
int temp = width;
width = height;
height = temp;
}
mpe_set_video_display(0, 0, width, height);
// if (!getPlayerIsSystemMediaPlayer()) {
// Rect rect = new Rect(0, 0, width, height);
// Player_UIManager.RenderLastFrame(rect);
// } else {
getCurrentSurfaceView(getPlayerIsSystemMediaPlayer()).invalidate();
// }
}
public void mpe_set_video_display(int left, int top, int right, int bottom) {
SurfaceView surfaceView = getCurrentSurfaceView(getPlayerIsSystemMediaPlayer());
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams)surfaceView.getLayoutParams();
lp.leftMargin = left;
lp.topMargin = top;
lp.width = right - left;
lp.height = bottom - top;
surfaceView.setLayoutParams(lp);
// if(!getPlayerIsSystemMediaPlayer()){
// Player_UIManager.Uim_set_video_display(left, top, right, bottom);
// }
}
/** 强制横屏 */
public int extScreenGetWidth() {
return mPlayerAdapter.extGetScreenWidth();
}
public int extScreenGetHeight() {
return mPlayerAdapter.extGetScreenHeight();
}
private String getCurrentMediaTypeName(){
return mPlayerFileName;
}
private void setCurrentMediaTypeName(String fileName){
LOG.v(TAG, "setCurrentMediaTypeName" , fileName);
// mPlayerBtmMediaName.setText(fileName);
mPlayerFileName = fileName;
}
private void playerRefreshUIMediaLocalAudio() throws YouPlayerException{
if(getObjectIsNull(mView)){
LOG.i(TAG, "playerRefreshUIMediaLocalAudio", "mView is null");
return;
}
if(mMediaFile != null){
String albumName = mMediaFile.getPlayingAudioAlbumName();
String singerName = mMediaFile.getPlayingAudioSingerName();
if (albumName == null || albumName.length() == 0){
albumName = playerGetResource(R.string.fullplayer_message_unknow);
}
if (singerName == null || singerName.length() == 0){
singerName = playerGetResource(R.string.fullplayer_message_unknow);
}
mMediaFile.createFileIcon(mContext, new MediaInfoCallBack() {
@Override
public void callback(String path, Bitmap bitmap, boolean isHD, String msg0,String msg1, long playedTime) {
if(bitmap == null && mView != null){
((ImageView) mView.findViewById(R.id.full_audio_thumbnail)).setImageResource(R.drawable.youplayer_player_audio_thumbnail);
}else if (mView != null && path != null && path.equals(mMediaFile.getPath())) {
((ImageView) mView.findViewById(R.id.full_audio_thumbnail)).setImageBitmap(bitmap);
}
}
@Override
public void callBack(int position, Bitmap bitmap) {
// TODO Auto-generated method stub
}
});
((TextView)mView.findViewById(R.id.bar_text_audio_file_value)).setText(getCurrentMediaTypeName());
((TextView)mView.findViewById(R.id.bar_text_audio_album_value)).setText(albumName);
((TextView)mView.findViewById(R.id.bar_text_audio_singer_value)).setText(singerName);
}
}
private void setPlayerLyricViewVisibleChanged(boolean isVisible){
if(isVisible){
mView.findViewById(R.id.full_audio_text_container).setVisibility(View.GONE);
mPlayerLyricView.setVisibility(View.VISIBLE);
}else{
mPlayerLyricView.setVisibility(View.INVISIBLE);
mView.findViewById(R.id.full_audio_text_container).setVisibility(View.VISIBLE);
}
}
private void playerRefreshUIMediaAudio() throws YouPlayerException{
if(getPlayerIsLocalAudio()){
playerRefreshUIMediaLocalAudio();
}
}
private void setCurrentTaskTotalDuration(long total,int current){
mPlayerBtmPlaySeekbar.setMax((int)total);
mPlayerBtmPlaySeekbar.setProgress(current);
}
private int getCurrentTaskTotalDuration(){
return mPlayerBtmPlaySeekbar.getMax();
}
private void playerRefreshUIPlayPosSeekbar(int progress){
mPlayerBtmPlaySeekbar.setProgress(progress);
}
public boolean getGestureIsEnable(){
return true;
}
public SurfaceView getCurrentSurfaceView(boolean isSysSurface){
LOG.v(TAG, "getCurrentSurfaceView, isSysSurface: ", isSysSurface);
if (isSysSurface){
return mPlayerSysSurfaceView;
}else{
return mPlayerYouSurfaceView;
}
}
public void setCurrentSurfaceViewVisible(int player_type){
LOG.v(TAG, "setCurrentSurfaceView, player_type: ", player_type);
switch(player_type){
case Player_type.PLAYER_TYPE_HARD_SOFT:
case Player_type.PLAYER_TYPE_SYSTEM:
mPlayerYouSurfaceView.setVisibility(View.INVISIBLE);
mPlayerSysSurfaceView.setVisibility(View.VISIBLE);
break;
case Player_type.PLAYER_TYPE_SOFT:
mPlayerSysSurfaceView.setVisibility(View.INVISIBLE);
mPlayerYouSurfaceView.setVisibility(View.VISIBLE);
break;
}
// LOG.v(TAG, "setCurrentSurfaceView, mPlayerMediaVideoLayout getVisibility", mPlayerMediaVideoLayout.getVisibility());
if( !getPlayerIsVideoMedia() || mPlayerAdapter.mMediaInfo.is_system_player == Player_type.PLAYER_TYPE_AIRONE ){
YouPlayerEventControler.fn_core_service_request(You_Core.FN_FULL_SCREEN_BTN_VIEW_READY, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
else if( mPlayerSysSurfaceView.getVisibility() == View.VISIBLE )
((YouPlayerSurfaceView)mPlayerSysSurfaceView).setOnCreateExecute(mOnSurfaceCreatedExecute);
else if ( mPlayerYouSurfaceView.getVisibility() == View.VISIBLE )
((YouPlayerSurfaceView)mPlayerYouSurfaceView).setOnCreateExecute(mOnSurfaceCreatedExecute);
}
private void setPlayerSeekbarIsEnable(boolean isEnable){
mPlayerBtmPlaySeekbar.setEnabled(isEnable);
}
private boolean getPlayerIsSystemMediaPlayer(){
return mPlayerAdapter.getPlayerIsSystemMediaPlayer();
}
private int getMediaInfoMediaType(){
return mPlayerAdapter.getMediaInfoMediaType();
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
LOG.v(TAG, "onKeyUp", "onKeyUp"+keyCode );
return false;
}
@Override
public boolean onkeyDown(int keyCode, KeyEvent event) {
LOG.v(TAG, "onkeyDown", "start");
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
mPlayerSeekbarVolume.up();
break;
case KeyEvent.KEYCODE_VOLUME_DOWN:
mPlayerSeekbarVolume.down();
break;
case KeyEvent.KEYCODE_BACK:
if(getPlayerIsLock()){
return true;
}
doPlayerADHideAllAction();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
YouPlayerEventControler.fn_core_service_request(You_Core.FN_FULL_SCREEN_BTN_DONE, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
}, 150);
return true;
default:
break;
}
return false;
}
private void onRequestCoreServiceForSeek(){
LOG.v(TAG, "onRequestCoreServiceForSeek", "start");
int pos = getPlayerSeekBarProgress();
LOG.v(TAG, "onRequestCoreServiceForSeek pos:", pos);
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_SEEK,You_Core.FN_UI_EVT_TOUCH_UP, null, pos);
}
private Handler mSeekPreviewHandler = new Handler();
private Runnable mSeekPreviewRunnable = new Runnable(){
public void run(){
LOG.v(TAG, "mSeekPreviewRunnable", "start");
onRequestCoreServiceForSeek();
}
};
private void setSeekPreviewCallback(){
removeSeekPreviewCallback();
mSeekPreviewHandler.postDelayed(mSeekPreviewRunnable, (long)(0.5f * 1000));
}
private void removeSeekPreviewCallback(){
mSeekPreviewHandler.removeCallbacks(mSeekPreviewRunnable);
}
private void doPlayerPlayAction(int playerStatus) throws YouPlayerException{
setPanelStatePlayOrPause(playerStatus);
}
private void doPlayerRelationVideoAction(You_full_screen_player_data_to_ui.Cls_fn_data_related_t coreData) throws YouPlayerException{
// if( coreData.related_content != null){
// mPlayerRelativeList.initDatas(coreData.related_content, new YouPlayerRelativeList.OnSelectedListener() {
// @Override
// public boolean onSelected(int index) {
// if(getPlayerIsReadyToPlay()){
// onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_RELATED_CELL,You_Core.FN_UI_EVT_TOUCH_UP,0,index);
// setPlayerViewsInitalizeValue();
// return true;
// }
// return false;
// }
//
// @Override
// public void onTouch(int action) {
// if( action == MotionEvent.ACTION_MOVE ){
// onRequestCoreService(PLAYER_FN_UI_MSG_RELATIVE_TOUCH_MOVE,You_Core.FN_UI_EVT_TOUCH_UP,null,null);
// }else if( action == MotionEvent.ACTION_UP ){
// onRequestCoreService(PLAYER_FN_UI_MSG_RELATIVE_TOUCH_UP,You_Core.FN_UI_EVT_TOUCH_UP,null,null);
// }
// }
// });
// }
}
private void doPlayerAllADAction(You_full_screen_player_data_to_ui.Cls_fn_ad_data_t coreData)throws YouPlayerException{
try{
HashMap map = YouUtility.adsListToHashMap( coreData , mContext);
if(map != null){
LOG.v(TAG, "adMap:", map.toString());
// mPlayerAdManager.onClearMap();
// mPlayerAdManager.setAdMap(map);
}
}catch(Exception e){
e.printStackTrace();
}
}
private synchronized void doPlayerADShowAction(You_full_screen_player_data_to_ui.Cls_fn_ad_content_t coreData){
try {
if(coreData == null || getPlayerIsBackground()){
LOG.e(TAG, "doPlayerADShowAction " , "coreData is null" + "isBackground:" + getPlayerIsBackground());
return;
}
LOG.v(TAG, "doPlayerADShowAction adType:" , coreData.adtype);
switch(coreData.adtype){
default:
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void doPlayerADHideAction(int adType)throws YouPlayerException{
LOG.v(TAG, "doPlayerADHideAction adType:" , adType);
}
private void doPlayerADHideAllAction() {
LOG.v(TAG, "doPlayerADHideAllAction" , "start");
// mPlayerAdManager.onDestoryAllAdView();
}
private void doPlayerMediaInfoAction(You_player_media_info coreData)throws YouPlayerException{
if(getPlayerIsLocalAudio()){
setPlayerLyricViewVisibleChanged(false);
mInitMediaTask = new InitMediaTask();
mInitMediaTask.execute();
if(getPlayerIsBackground()){
removeNotification();
sendNotification();
}
}
if(!mPlayerAdapter.getMediaInfoIsLive()){
setPlayerSeekbarIsEnable(true);
}
setCurrentTaskTotalDuration(coreData.duration,coreData.start_play_time);
playerRefreshUIMaxAndMinTime(getCurrentTaskTotalDuration(), coreData.start_play_time);
}
private void doPlayerSeekBarAction(int progress)throws YouPlayerException{
LOG.v(TAG, "doPlayerSeekBarAction:" , "" + progress + " ,isSeeking:" + getPlayerIsSeeking());
if(!getPlayerIsSeeking()){
playerRefreshUIPlayPosSeekbar(progress);
}
}
private void doPlayerSetSurfaceRect(Rect rect) throws YouPlayerException{
setSurfaceWidthHeight(rect.width(), rect.height());
}
private void doPlayerRefreshUIAudioState(int audioPlayMode) throws YouPlayerException{
setPlayerAudioFullScreenState(audioPlayMode);
}
private void doPlayerSetSubtitleTypeAction(You_full_screen_player_data_to_ui.Cls_fn_full_screen_audio_and_subtitle coreData) {
mPlayerAudioSubtitle = new YouPlayerAudioSubtitle(mContext, coreData);
mPlayerAudioSubtitle.showDialog((RelativeLayout)mView.findViewById(R.id.fullplayer_bottombar));
}
private void doPlayerPlayToEndAction(int v) {
for(IStopExec exec:onNewExec)
exec.onStop();
onNewExec.clear();
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_STOP, You_Core.FN_UI_EVT_TOUCH_UP, null, v);
}
private void doPlayerBufferPercentAction(Integer value) throws YouPlayerException{
String msg = playerGetResource(R.string.fullplayer_is_buffering);
if (value != null ){
msg += value + "%";
}
if(getPlayerIsLock()){
playerRefreshUITip(msg, PLAYER_TIPS_UI_FONT_SIZE_20);
}else{
// mPlayerBtmPlayState.setText(msg);
}
}
private void doPlayerBufferEndAction() throws YouPlayerException{
String msg = playerGetResource(R.string.fullplayer_is_buffering);
msg += "100%";
if(getPlayerIsLock()){
playerRefreshUITip(msg, PLAYER_TIPS_UI_FONT_SIZE_20);
playerSetUITipInVisible();
}else{
// mPlayerBtmPlayState.setText(msg);
}
}
private void doPlayerBufferStartAction() throws YouPlayerException{
String msg = playerGetResource(R.string.fullplayer_is_buffering);
if(getPlayerIsLock()){
playerRefreshUITip(msg, PLAYER_TIPS_UI_FONT_SIZE_20);
}else{
// mPlayerBtmPlayState.setText(msg);
}
}
private void doPlayerShowLyricAction(YouPlayerLyrics tagyouLyrics) {
mPlayerLyricView.init(tagyouLyrics);
//setPlayerGestureViewIsVisible(false);
setPlayerLyricViewVisibleChanged(true);
}
private void doPlayerShowSubtitleAction(String subtitle) {
LOG.v(TAG, "doPlayerShowSubtitleAction subtitle:", subtitle);
if(getPlayerIsVideoMedia()){
if(subtitle != null && !subtitle.equals(mPlayerSubtitleView.titleStr) && mPlayerSubtitleView != null){
mPlayerSubtitleView.titleStr = subtitle;
mPlayerSubtitleView.invalidate();
}
}
}
private void doPlayerOpeningAction(String fileName) {
setPlayerPlayStateText(You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_OPENNING);
setCurrentMediaTypeName(fileName);
}
private void doPlayerSetSeekingSeekBarAction(int progress) throws YouPlayerException{
setPlayerSeekBarProgress( progress);
}
private void doPlayerSetTipsInVisibleAction() throws YouPlayerException{
playerSetUITipInVisible();
}
private void doPlayerReadyToPlayAction(int type) {
setPlayerPlayStateText(type);
}
private void doPlayerSetTipsRefreshAction(YouPlayerAdapter.Tips tips) throws YouPlayerException{
LOG.v(TAG, "doPlayerSetTipsRefreshAction text:", tips.text);
if(PLAYER_UI_MSG_SEEKBAR.equals(tips.text)){
playerRefreshUITip(extGetTimeStringFromTime(getPlayerSeekBarProgress()), PLAYER_TIPS_UI_FONT_SIZE_LARGE);
}else{
playerRefreshUITip(tips.text, tips.size);
}
}
private boolean getSeekBarIsEnableForShare(){
if(mPlayerBtmPlaySeekbar.getProgress() < 1000 || mPlayerBtmPlaySeekbar.getProgress() > (mPlayerBtmPlaySeekbar.getMax() - 1000)){
return false;
}
return true;
}
private String getWeiBoURL(){
return playerGetResource(R.string.share_weibo_url);
}
private void doPlayerShare(String picpath ,String shareUrl){
}
private void doPlayerSetShareAction(String videourl,int time,String shareUrl){
if((videourl == null || getPlayerIsVideoMedia() || getPlayerIsLocalAudio()) && (mPlayerAdapter.getMediaInfoIsLive() || getSeekBarIsEnableForShare()) ){
weiboAction(videourl,time,shareUrl,getPlayerIsSystemMediaPlayer());
return;
}
doPlayerShare(null,shareUrl);
}
private void doPlayerSetNetBufferingAction(String value) {
// mPlayerBtmPlayState.setText(value);
}
private AsyncTask image_task;
public void weiboAction(final String filepath,final int pos,final String url,final boolean systemplayer){
if(getObjectIsNull(mContext)){
LOG.e(TAG, "weiboAction", "mContext is null");
return;
}
LOG.v(TAG, "weiboAction", "start");
final String filename = YouUtility
.getyouCacheFolder(YouUtility.ONLINE_PICTURE_TYPE)
+ File.separator + "weibo_fone.png";
File file = new File(filename);
if(file != null){
if(file.exists()){
LOG.v(TAG, "weiboAction exists ", "delete");
file.delete();
}
}
final ProgressDialog dialog = new ProgressDialog(YouExplorer.instance);
dialog.setMessage(mContext.getResources().getText(R.string.share_getimage));
dialog.setOnCancelListener(new OnCancelListener(){
@Override
public void onCancel(DialogInterface dialog) {
if(image_task != null){
image_task.cancel(true);
LOG.v(TAG, "image_task", "cancel");
}
}
});
dialog.getWindow().setGravity(Gravity.CENTER);
dialog.show();
image_task = null;
image_task = new AsyncTask(){
@Override
protected Object doInBackground(Object... params) {
if(getPlayerIsVideoMedia()){
try{
if( systemplayer ){
Player_UIManager.fone_media_thumbnail_init(320, 240);
YouPlayerBitMap tag = (YouPlayerBitMap) Player_UIManager
.fone_media_player_get_thumbnail_from_video(filepath, pos, 16, 320, 240);
LOG.v(TAG, "fone_media_thumbnail_init", "start");
if (tag != null&&tag.m_bitmap != null) {
YouUtility.saveWeiboBitmap((Bitmap) tag.m_bitmap,filename);
}
}else{
Player_UIManager.fone_media_player_seek_preview_init(320, 240);
Bitmap weiboBitmap = (Bitmap) Player_UIManager.fone_media_player_seek_preview();
LOG.v(TAG, "fone_media_player_seek_preview_init", "start");
YouUtility.saveWeiboBitmap(weiboBitmap,filename);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if( systemplayer ){
Player_UIManager.fone_media_thumbnail_uninit();
LOG.v(TAG, "fone_media_thumbnail_uninit", "start");
}else{
Player_UIManager.fone_media_player_seek_preview_uninit();
LOG.v(TAG, "fone_media_player_seek_preview_uninit", "start");
}
}
}
try {
if(getPlayerIsLocalAudio() && mMediaFile != null){
mMediaFile.createFileIcon(mContext, new MediaInfoCallBack() {
@Override
public void callback(String path, Bitmap bitmap, boolean isHD, String msg0,String msg1, long playedTime) {
if(bitmap != null ){
YouUtility.saveWeiboBitmap(bitmap,filename);
}else{
Bitmap default_bitmap = BitmapFactory.decodeResource(mContext.getResources(),R.drawable.youplayer_player_audio_thumbnail);
YouUtility.saveWeiboBitmap(default_bitmap,filename);
if( default_bitmap != null ){
default_bitmap.recycle();
default_bitmap = null;
}
}
}
@Override
public void callBack(int position, Bitmap bitmap) {
// TODO Auto-generated method stub
}
});
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Object result) {
dialog.dismiss();
//FoneUtility.toShareToSystem(mContext,filename,url, getCurrentMediaTypeName());
doPlayerShare(filename,url);
};
};
image_task.execute();
}
private void doPlayerSetBrightAction() throws YouPlayerException{
if(mContext == null){
LOG.e(TAG, "doPlayerSetBrightAction", "mContext is null");
return;
}
}
public void doPlayerStopAction(int isStop) {
if(isStop == 0){
try {
reInitPlayerViews();
} catch (YouPlayerException e) {
e.printStackTrace();
}
setBackgroundLogoIsShow(true);
mSurface_width = mSurface_height = 0;
}
}
private void doPlayerEngineAction() throws YouPlayerException{
setPlayerMediaLayout(getMediaInfoMediaType());
setPlayerUsedSurface();
setPlayerGestureView();
playerRefreshUITopPanel();
setQualityIcon();
mSpeed = 1;
}
private void setQualityIcon(){
// if (getPlayerIsLocalAudio() || getPlayerIsLocalVideo() || getPlayerIsOnlineAudio() ){
//// mPlayerBtmImgbQuality.setVisibility(View.INVISIBLE);
// return;
// }
// else
// mPlayerBtmImgbQuality.setVisibility(View.VISIBLE);
if(mPlayerAdapter != null && mPlayerAdapter.mMediaInfo.current_dfnt == 0 ){
// mPlayerBtmImgbQuality.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_quality1);
LOG.i(TAG, "setQualityIcon", "quality:0");
}
else{
LOG.i(TAG, "setQualityIcon", "quality:"+mPlayerAdapter.mMediaInfo.current_dfnt);
// if( mPlayerAdapter.mMediaInfo.current_dfnt == 3 ) mPlayerBtmImgbQuality.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_quality3);
// else if( mPlayerAdapter.mMediaInfo.current_dfnt == 2 ) mPlayerBtmImgbQuality.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_quality2);
// else mPlayerBtmImgbQuality.setImageResource(R.drawable.youplayer_fullplayer_bottom_btn_quality1);
}
}
private void onMessageCallBack(You_full_screen_player_data_to_ui coreData)throws YouPlayerException{
if(coreData == null){
LOG.e(TAG, "doPlayerCallbackAction", "coreData is null");
return;
}
int showType = coreData.type;
switch(showType){
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_BASE:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_OPENNING:
if(coreData.value != null){
doPlayerOpeningAction((String)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_OPENSUCCESS:
mPlayerSeekbarBrightness.init();
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_OPEN_FAILED:
doPlayerErrorAction(You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_OPEN_FAILED,coreData.value instanceof Integer ? (Integer)coreData.value:0);
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_NO_DATA_FAILED:
doPlayerErrorAction(You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_NO_DATA_FAILED,coreData.value instanceof Integer ? (Integer)coreData.value:0);
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_READY_TO_PLAY:
doPlayerReadyToPlayAction(You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_READY_TO_PLAY);
setPlayerIsSeeking(false);
if(getPlayerIsLock()){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
onPlayerLockAction();
}
}, 100);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_VIDEO_VIEW:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_VIDEO_RENDER:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_MEDIA_INFO:
mPlayerBtmImgbNext.setEnabled(true);
mPlayerBtmImgbPrevious.setEnabled(true);
if(coreData.value != null){
doPlayerMediaInfoAction((You_player_media_info)coreData.value);
// if(!getPlayerIsLock()){
// setRelativeListVisible(PlayerRelativeList.isShouldShow());
// }
// if(!getPlayerIsOnlineAudio()){
// setBackgroundLogoIsShow(false);
// }
}
if( getPlayerIsVideoMedia() && mPlayerAdapter.mMediaInfo.is_system_player == Player_type.PLAYER_TYPE_SOFT ){
int width = mPlayerAdapter.mMediaInfo.width;
int height = mPlayerAdapter.mMediaInfo.height;
mSurface_width = width;
mSurface_height = height;
mPlayerYouSurfaceView.getHolder().setFixedSize(width, height);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_PLAY_BTN:
if(coreData.value != null){
doPlayerPlayAction((Integer)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_PROGRESS_BAR:
if(coreData.value != null){
doPlayerSeekBarAction((Integer)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_SUBTITLE:
if(coreData.value != null){
doPlayerShowSubtitleAction(coreData.value.toString());
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_LYRIC:
if(coreData.value != null){
doPlayerShowLyricAction((YouPlayerLyrics)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_BUFFER_START:
doPlayerBufferStartAction();
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_BUFFER_END:
doPlayerBufferEndAction();
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_BUFFER_PERCENT:
if(coreData.value != null){
doPlayerBufferPercentAction((Integer)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_SEEK_THUMBNAIL:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_DO_SEEK_PREVIEW:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_STOP:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_PLAY_TO_END:
if( coreData.value != null ){
doPlayerPlayToEndAction((Integer)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_ALL_AD:
if(coreData.value != null){
doPlayerAllADAction((You_full_screen_player_data_to_ui.Cls_fn_ad_data_t)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_AD_VIEW:
if(coreData.value != null){
doPlayerADShowAction((You_full_screen_player_data_to_ui.Cls_fn_ad_content_t)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_HIDE_AD_VIEW:
if(coreData.value != null){
doPlayerADHideAction((Integer)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_HIDE_ALL_AD_VIEWS:
doPlayerADHideAllAction();
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SET_PLAYER_ENGINE_TYPE:
doPlayerEngineAction();
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SET_SUBTITLE_TYPE:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SET_MEDIA_TYPE:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_CHANGE_MODE:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_AUDIO_SUBTITLE:
if(coreData.value != null){
doPlayerSetSubtitleTypeAction((You_full_screen_player_data_to_ui.Cls_fn_full_screen_audio_and_subtitle)coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_NO_NET_FAILED:
doPlayerErrorAction(You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_NO_NET_FAILED,coreData.value instanceof Integer ? (Integer)coreData.value:0);
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_CONN_TIME_OUT:
doPlayerErrorAction(You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_CONN_TIME_OUT,coreData.value instanceof Integer ? (Integer)coreData.value:0);
doPlayerPlayToEndAction(2);
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_CONN_RESET:
// doPlayerShowConnResetAction(Cls_fn_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_CONN_RESET);
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_NO_NEXT_PREVIOUD_FILE:
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_LIVE_MEDIA_DISCONNECT:
doPlayerErrorAction(You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_LIVE_MEDIA_DISCONNECT,coreData.value instanceof Integer ? (Integer)coreData.value:0);
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_RELATED_VIDEO:
if( coreData.value != null ){
doPlayerRelationVideoAction((You_full_screen_player_data_to_ui.Cls_fn_data_related_t) coreData.value);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_FILE_NOT_EXIST:
doPlayerErrorAction(You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_FILE_NOT_EXIST,coreData.value instanceof Integer ? (Integer)coreData.value:0);
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_SHARE_DATA:
LOG.v(TAG,"SHARE_DATA",(String)coreData.value);
String urltime = (String)coreData.value;
String[] datas = urltime.split("\\^_\\^");
if( datas.length != 3 ){
//Log.i("lrl","url:");
doPlayerSetShareAction(null,0,null);
}
else{
//Log.i("lrl","url:"+datas[2]);
int index = urltime.lastIndexOf(':');
doPlayerSetShareAction(datas[0],Integer.parseInt(datas[1]),datas[2]);
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_ONLINE_VIDEO_PLAY_URL:
String url = (String)coreData.value;
if( url == null || url.trim().length() == 0 ) {
// mView.findViewById(R.id.fullplayer_top_url_panel).setVisibility(View.GONE);
} else {
// mView.findViewById(R.id.fullplayer_top_url_panel).setVisibility(View.VISIBLE);
// ((TextView)mView.findViewById(R.id.fullplayer_top_url)).setText( mView.getResources().getString(R.string.full_player_url_src) + url);
// ((TextView)mView.findViewById(R.id.fullplayer_top_url_button)).setOnClickListener(new View.OnClickListener() {
//
// @Override
// public void onClick(View v) {
// YouPlayerEventControler.fn_core_service_request(You_Core.FN_FULL_SCREEN_BTN_OURL, You_Core.FN_UI_EVT_TOUCH_UP ,null, null);
// }
// });
}
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_AIRONE_AUTHORIZED:{
String value = (String)coreData.value;
LOG.v(TAG,"FN_PAGE_FULL_PLAYER_SHOW_AIRONE_AUTHORIZED",value);
doPlayerAironeAuthorized(value);
break;
}
case PLAYER_FN_UI_MSG_SELF_NET_TIMER_OUT_ACTION:
doPlayerErrorAction(PLAYER_FN_UI_MSG_SELF_NET_TIMER_OUT_ACTION,coreData.value instanceof Integer ? (Integer)coreData.value:0);
doPlayerPlayToEndAction(2);
break;
case PLAYER_FN_UI_MSG_CONTROLL_PANEL_VISIBLITY:
if(coreData.value != null){
// Toast.makeText(mContext, "mPlayerAdapter.mMediaInfo.is_system_player="+mPlayerAdapter.mMediaInfo.is_system_player, Toast.LENGTH_SHORT).show();
if((Boolean)coreData.value && getPlayerIsLock()){
LOG.v(TAG, "controll_panel_visiblity", "isLock unvisible controll panel");
// 如果为DLNA投放模式,屏幕控件不隐藏
} else if(!(Boolean)coreData.value && mPlayerAdapter.mMediaInfo.is_system_player == Player_type.PLAYER_TYPE_AIRONE) {
LOG.v(TAG, "controll_panel_visiblity", "dlna mode visible controll panel");
}else{
setPlayerControllPanelVisible((Boolean)coreData.value);
}
}
break;
case PLAYER_FN_UI_MSG_PLAY_MODE_VIDEO:
if(coreData.value != null){
setPlayerVideoFullScreenState((Integer)coreData.value);
}
break;
case PLAYER_FN_UI_MSG_PLAY_MODE_AUDIO:
if(coreData.value != null){
doPlayerRefreshUIAudioState((Integer)coreData.value);
}
break;
case PLAYER_FN_UI_MSG_SURFACE_RECT:
if(coreData.value != null){
doPlayerSetSurfaceRect((Rect)coreData.value);
}
break;
case PLAYER_FN_UI_EVT_PAGE_SEEK_LEFT_RIGHT:
if(coreData.value != null){
doPlayerSetSeekingSeekBarAction((Integer)coreData.value);
}
break;
case PLAYER_FN_UI_MSG_TIP_INVISIBILITY:
doPlayerSetTipsInVisibleAction();
break;
case PLAYER_FN_UI_MSG_TIP_VISIBILITY_REFRESH:
if(coreData.value != null){
doPlayerSetTipsRefreshAction((YouPlayerAdapter.Tips)coreData.value);
}
break;
case PLAYER_FN_UI_MSG_PLAY_VOLUME_BRIGHT:
if(coreData.value != null){
setPlayerSeekBarVolumeOrBrightVisibleChanged((Integer)coreData.value);
}
break;
case PLAYER_FN_UI_MSG_PLAY_VOLUME_BRIGHT_SIZE:
if(coreData.value != null){
setPanelStateVolumeOrBrightSize((Integer)coreData.value);
}
break;
case PLAYER_FN_UI_MSG_SOFT_VOL:{
setSoftVolume((Integer)coreData.value);
}
break;
case PLAYER_FN_UI_MSG_PLAY_RELATION_VISIBLITY:
// if(coreData.value != null){
// doPlayerSetRelativeListAction((Boolean)coreData.value);
// }
break;
case PLAYER_FN_UI_MSG_PLAY_SHARE:
//doPlayerSetShareAction();
break;
case PLAYER_FN_UI_EVT_PAGE_CHANGE_BRIGHT:
doPlayerSetBrightAction();
break;
case PLAYER_FN_UI_MSG_NET_BUFFERING_VISIBLITY:
if(coreData.value != null){
doPlayerSetNetBufferingAction((String)coreData.value);
}
break;
case PLAYER_FN_UI_MSG_WAITTING:
if(coreData.value != null){
setPlayerWaitingAction((Boolean)coreData.value);
}
break;
case PLAYER_FN_UI_MSG_LOCK:
doPlayerLockAction();
break;
case PLAYER_FN_UI_MSG_UPDATE_SYSTIME:
playerRefreshUISystemTime();
break;
case You_page_full_player_show_type.FN_PAGE_FULL_PLAYER_SHOW_FEE_TIPS:
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_PAUSE, You_Core.FN_UI_EVT_TOUCH_UP, null, 1);
setPlayerControllPanelVisible(true);
unlock();
if( !mFeeShowed )
doShowTopDialog((You_full_screen_tips) coreData.value);
break;
default:
break;
}
coreData = null;
}
private void doPlayerAironeAuthorized(String value) {
final EditText txt = new EditText(YouExplorer.instance);
int index = value.indexOf("^V^");
if( index < 0 ) return;
String name = value.substring(0,index);
final String uuid = value.substring(index+3);
new AlertDialog.Builder(YouExplorer.instance).setTitle("请输入\""+name+"\"密码").setIcon(
android.R.drawable.ic_dialog_info).setView(txt)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
LOG.i(TAG, "FN_FULL_SCREEN_BTN_AIRONE_AUTHORIZE uuid:pwd",uuid+":"+txt.getText());
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_AIRONE_AUTHORIZE, You_Core.FN_UI_EVT_TOUCH_UP, uuid,txt.getText().toString());
}
})
.setNegativeButton("取消", null).show();
}
boolean mFeeShowed = false;
private void doShowTopDialog(final You_full_screen_tips tips) {
mFeeShowed = true;
LOG.i(TAG, "doShowTopDialog tips:title:", tips.title);
LOG.i(TAG, "doShowTopDialog tips:durl:", tips.durl);
LOG.i(TAG, "doShowTopDialog tips:content:", tips.content);
AlertDialog.Builder builder = new Builder(YouExplorer.instance);
builder.setMessage(tips.content);
builder.setTitle(tips.title);
// if( tips.durl != null && tips.durl.length() > 0 ){
if(tips.btns == 1 || tips.btns == 3) {
builder.setPositiveButton(tips.btnJumpLabel, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mFeeShowed = false;
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_FEE_DURL, You_Core.FN_UI_EVT_TOUCH_UP, null, tips.durl);
}
});
}
// }
if(tips.btns == 2 || tips.btns == 3) {
builder.setNegativeButton(tips.btnCancelLabel, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mFeeShowed = false;
dialog.dismiss();
}
});
}
if(tips.btns > 0) {
builder.setCancelable(false);
}
final Dialog dialog = builder.create();
dialog.setCanceledOnTouchOutside(false);
// dialog.setOnCancelListener(new OnCancelListener() {
//
// @Override
// public void onCancel(DialogInterface dialog) {
// mFeeShowed = false;;
// }
// });
onDestoryExec.add(new IStopExec(){
@Override
public void onStop() {
mFeeShowed = false;
if( dialog != null && dialog.isShowing() )
dialog.dismiss();
}
});
dialog.show();
}
private void unlock(){
if(getPlayerIsLock()){
setPlayerLockViewVisibleChanged(false);
setPlayerLockBtnVisibleChanged(false);
setPlayerIsLock(false);
}
}
private void setSoftVolume(float value) {
int vol = (int)(-10f * value / mPlayerGestureView.getHeight());
int v = Player_UIManager.fone_media_player_get_audio_volume();
int set_v = v+vol;
if( set_v < 0 ) set_v = 1;
else if( set_v > 10 ) set_v = 10;
Player_UIManager.fone_media_player_set_audio_volume( set_v );
}
private void doPlayerLockAction() {
setPlayerLockViewVisibleChanged(true);
if(!getPlayerIsLock()){
setPlayerLockBtnVisibleChanged(true);
setPlayerLockRunnable();
}
setPlayerIsLock(true);
}
private void doPlayerHandlerCallBackAction(You_full_screen_player_data_to_ui coreData, Object uiData){
try {
onMessageCallBack(coreData);
} catch (YouPlayerException e) {
e.printStackTrace();
}
}
@Override
public boolean action_callback(int page_id, int page_action, Object core_data, Object ui_data) {
return mPlayerAdapter.playerCallBack(page_id, page_action, core_data, ui_data);
}
public void onRequestCoreService(int ctrl, int evt, Object core_data, Object ui_data){
mPlayerAdapter.playerAdapterOnRequestCoreService(ctrl, evt, core_data, ui_data);
}
private class InitMediaTask extends AsyncTask<Boolean, Integer, Boolean> {
@Override
protected Boolean doInBackground(Boolean... params) {
initializeTask();
return true;
}
@Override
protected void onPostExecute(Boolean result) {
try {
playerRefreshUIMediaAudio();
} catch (YouPlayerException e) {
e.printStackTrace();
}
super.onPostExecute(result);
}
}
private void uninitMediaTask(){
if (null != mInitMediaTask) {
mInitMediaTask.cancel(true);
mInitMediaTask = null;
}
}
protected void initializeTask() {
String path = mPlayerAdapter.getMediaInfoUrl();
// mMediaFile = MediaResolver.resolveMediaFile(InterfaceFile.SOURCE_TYPE_LOACAL, path, mContext, false);
}
public void onSdcardEject() {
if (getPlayerIsLocalAudio() || getPlayerIsLocalVideo()) {
LOG.v(TAG, "onSdcardEject", "start");
removeNotification();
playerExitOnRequest();
}
}
private void initSdcardStateReceiver() {
if (null == sdcardEjectReceiver && mContext != null) {
sdcardEjectReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MEDIA_EJECT.equals(intent.getAction())) {
onSdcardEject();
}
}
};
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED);
intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);
intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);
intentFilter.addAction(Intent.ACTION_MEDIA_SHARED);
intentFilter.addDataScheme("file");
mContext.registerReceiver(sdcardEjectReceiver, intentFilter);
}
}
public BroadcastReceiver mScreenOffReceiver;
private void initScreenOffRegisters(){
if (mContext != null && mScreenOffReceiver == null) {
mScreenOffReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
LOG.v(TAG, "onReceive", intent != null ? intent.getAction() : "null");
if( intent.getAction().equals("android.intent.action.SCREEN_OFF")){
if( mPlayerYouSurfaceView.getVisibility() == View.VISIBLE ){
mPlayerYouSurfaceView.setVisibility(View.INVISIBLE);
}
}
}
};
mContext.registerReceiver(mScreenOffReceiver,new IntentFilter("android.intent.action.SCREEN_OFF"));
}
}
private void uninitScreenOffRegisters () {
if (mContext != null && mScreenOffReceiver != null) {
mContext.unregisterReceiver(mScreenOffReceiver);
mScreenOffReceiver = null;
}
}
private void uninitSdcardReceiver () {
if (null != sdcardEjectReceiver && mContext != null) {
mContext.unregisterReceiver(sdcardEjectReceiver);
sdcardEjectReceiver = null;
}
}
private void initTelephoneReceiver() {
if(getObjectIsNull(mContext)){
LOG.e(TAG, "initTelephoneListener", "mView is null");
return;
}
phoneStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
LOG.e(TAG, "initTelephoneReceiver", "action:"+intent.getAction());
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL) || intent.getAction().equals("android.intent.action.PHONE_STATE")) {
if((getPlayerIsLocalAudio() || getPlayerIsOnlineAudio())&& !getPlayerIsPauseStatus() ){
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_PAUSE, You_Core.FN_UI_EVT_TOUCH_UP, null, 0);
}
sendNotification();
} else {
TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
if(tm != null){
switch (tm.getCallState()) {
case TelephonyManager.CALL_STATE_RINGING:
if((getPlayerIsLocalAudio() || getPlayerIsOnlineAudio())&& !getPlayerIsPauseStatus() ){
onRequestCoreService(You_Core.FN_FULL_SCREEN_BTN_PAUSE, You_Core.FN_UI_EVT_TOUCH_UP, null, null);
}
sendNotification();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_IDLE:
break;
default:
break;
}
}
}
}
};
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_NEW_OUTGOING_CALL);
intentFilter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED);
mContext.registerReceiver(phoneStateReceiver, intentFilter);
}
private void uninitTelephoneReceiver(){
if (getPlayerIsPauseStatus() && null != phoneStateReceiver && mContext != null) {
mContext.unregisterReceiver(phoneStateReceiver);
phoneStateReceiver = null;
}
}
public void sendNotification() {
if(getObjectIsNull(mContext)){
LOG.e(TAG, "sendNotification", "mView is null");
return;
}
removeNotification();
String mediaName = getCurrentMediaTypeName();
String pauseOrPlay = "";
if (getPlayerIsLocalAudio()) {
if (getPlayerIsPauseStatus()){
pauseOrPlay += playerGetResource(R.string.notification_message_audio)+ playerGetResource(R.string.notification_message_pause);
}else{
pauseOrPlay += playerGetResource(R.string.notification_message_audio)+ playerGetResource(R.string.notification_message_play);
}
}else if (getPlayerIsVideoMedia()) {
pauseOrPlay += playerGetResource(R.string.notification_message_video)+ playerGetResource(R.string.notification_message_pause);
}else if(getPlayerIsOnlineAudio()){
pauseOrPlay += playerGetResource(R.string.notification_message_radio)+ playerGetResource(R.string.notification_message_pause);
}else{
mediaName = playerGetResource(R.string.app_name);
pauseOrPlay += playerGetResource(R.string.fullplayer_media_opening);
}
try {
if (mPlayerNotificationManager == null){
mPlayerNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
}
Intent intent = new Intent(mContext, YouExplorer.class);
Bundle extraData = new Bundle();
extraData.putBoolean("FLAG_RESUME_FROM_NOTIFICATION", true);
intent.putExtras(extraData);
PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT);
mPlayerNotification = null;
mPlayerNotification = new Notification();
mPlayerNotification.icon = R.drawable.icon;
mPlayerNotification.flags = Notification.FLAG_AUTO_CANCEL;
mPlayerNotification.contentIntent = pi;
mPlayerNotification.contentView = new RemoteViews(mContext.getPackageName(),R.layout.youplayer_notifyview);
mPlayerNotification.contentView.setTextViewText(R.id.text_notify_state,pauseOrPlay);
mPlayerNotification.contentView.setTextViewText(R.id.text_notify_name,mediaName);
mPlayerNotificationManager.notify(0, mPlayerNotification);
} catch (Exception e) {
e.printStackTrace();
}
}
public void removeNotification() {
if (mPlayerNotificationManager == null && mContext != null){
mPlayerNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
}
if(mPlayerNotificationManager != null)
{
mPlayerNotificationManager.cancel(0);
mPlayerNotification = null;
mPlayerNotificationManager = null;
}
}
public boolean getObjectIsNull(Object obj){
return (obj == null);
}
public void xyz_updated(HashMap<String, Object> event) {
LOG.v(TAG, "xyz_updated", "start");
}
public static YouPlayerFullScreenPlayer getInstance(Context context, Object core_data, Object ui_data) {
if( instance == null ){
instance = new YouPlayerFullScreenPlayer(context,core_data,ui_data);
}else{
instance.reloadPlayerViews(context);
}
instance.setBackgroundLogoIsShow(true);
return instance;
}
public void exitFullPlayerApp(){
onDestroy();
mPlayerSysSurfaceView = null;
mPlayerYouSurfaceView = null;
instance = null;
super.onDestroy();
}
public synchronized void viewHasAdded(){
playerViewHasAdded = true;
LOG.v(TAG, "viewHasAdded", playerViewHasAdded);
}
public void viewHasRemove(){
playerViewHasAdded = false;
LOG.v(TAG, "viewHasRemove", playerViewHasAdded);
}
}
interface IStopExec{
public void onStop();
}