package com.basic.security.fragment.helper; import android.media.MediaPlayer; import android.view.View; import android.view.ViewGroup; import android.widget.VideoView; import com.basic.security.manager.AlarmManager; import org.androidannotations.annotations.EFragment; @EFragment public abstract class HomePlayAlarmVideo extends HomeSaveAlarmVideoPlayPosition { public void stopAllVideoPlays(VideoView exceptVideoView) { for (AlarmListAdapter.ViewHolder viewHolder : viewHolderSet.keySet()) { if (viewHolder.alarmVideo.isPlaying()) { viewHolder.alarmVideo.setVisibility(View.INVISIBLE); viewHolder.alarmVideo.setVisibility(View.VISIBLE); viewHolder.alarmVideoGestureOverlayView.setVisibility(View.VISIBLE); viewHolder.alarmVideo.stopPlayback(); } if (viewHolder.alarmVideo != exceptVideoView) { viewHolder.alarmPicture.setVisibility(View.VISIBLE); viewHolder.alarmVideo.setVisibility(View.INVISIBLE); viewHolder.alarmVideoGestureOverlayView.setVisibility(View.INVISIBLE); } } } public void resumeVideoPlay() { for (AlarmListAdapter.ViewHolder viewHolder : viewHolderSet.keySet()) { if (AlarmManager.getAlarmPlaying(viewHolder.alarm) // && !viewHolder.alarmVideo.isPlaying() ) { mainActivity().runOnUiThread(new Runnable() { @Override public void run() { viewHolder.alarmVideo.setVisibility(View.VISIBLE); playVideo(viewHolder); } }); } else { viewHolder.alarmVideoOverlay.setVisibility(View.GONE); } } } public void playVideo(final AlarmListAdapter.ViewHolder viewHolder) { if (mainActivity().notInFullscreenMode()) { viewHolder.alarmVideoOverlay.setVisibility(View.VISIBLE); viewHolder.alarmVideoOverlayVisibleTime = System.currentTimeMillis(); viewHolder.alarmPicture.setVisibility(View.INVISIBLE); viewHolder.alarmVideo.setVisibility(View.VISIBLE); viewHolder.alarmVideoGestureOverlayView.setVisibility(View.VISIBLE); if (viewHolder.alarmVideo.isPlaying()) { return; } if ("true".equals(viewHolder.alarm.get("alarmVideoValid"))) { viewHolder.alarmVideo.setVisibility(View.INVISIBLE); viewHolder.alarmVideo.setVisibility(View.VISIBLE); viewHolder.alarmVideoGestureOverlayView.setVisibility(View.VISIBLE); Integer currentVideoPlayTimeInt = currentVideoPlayTimeMap.get(viewHolder.alarm.get("id")); if (currentVideoPlayTimeInt != null) { viewHolder.alarmVideo.seekTo(currentVideoPlayTimeInt); } viewHolder.alarmVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { ViewGroup.LayoutParams alarmViewLayoutParams = viewHolder.alarmVideo.getLayoutParams(); ViewGroup.LayoutParams gestureViewLayoutParams = viewHolder.alarmVideoGestureOverlayView.getLayoutParams(); alarmViewLayoutParams.height= gestureViewLayoutParams.height = (int)(alarmViewLayoutParams.width*(mp.getVideoHeight()*1.0/mp.getVideoWidth())); viewHolder.alarmVideo.setLayoutParams(alarmViewLayoutParams); viewHolder.alarmVideoGestureOverlayView.setLayoutParams(gestureViewLayoutParams); mp.start(); mp.setLooping(false); mp.setOnInfoListener(new MediaPlayer.OnInfoListener() { @Override public boolean onInfo(MediaPlayer mp, int what, int extra) { if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) { viewHolder.alarmVideo.setVisibility(View.VISIBLE); viewHolder.alarmVideoOverlay.setVisibility(View.GONE); return true; } return false; } }); } }); viewHolder.alarmVideo.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { currentVideoPlayTimeMap.remove(viewHolder.alarm.get("id")); viewHolder.alarm.put("videoPlayFinished", "true"); AlarmManager.putAlarmPlaying(viewHolder.alarm, false); } }); viewHolder.alarmVideo.start(); } } } public void stopVideo(AlarmListAdapter.ViewHolder viewHolder) { viewHolder.alarmVideoOverlay.setVisibility(View.INVISIBLE); viewHolder.alarmPicture.setVisibility(View.VISIBLE); viewHolder.alarmVideo.setVisibility(View.INVISIBLE); viewHolder.alarmVideoGestureOverlayView.setVisibility(View.INVISIBLE); AlarmManager.putAlarmPlaying(viewHolder.alarm, false); if (viewHolder.alarmVideo.isPlaying()) { viewHolder.alarmVideo.stopPlayback(); } } }