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();
|
}
|
}
|
|
}
|