zhangzengfei
2020-06-18 aeca1003b8abc4b7e5dfe56228827bbcaae937be
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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();
        }
    }
 
}