package com.basic.security.fragment;
|
|
import android.content.pm.PackageManager;
|
import android.graphics.Outline;
|
import android.os.Bundle;
|
import android.support.annotation.NonNull;
|
import android.support.v4.content.ContextCompat;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.ViewOutlineProvider;
|
import android.widget.VideoView;
|
|
import com.basic.security.base.BaseFragment;
|
import com.basic.security.utils.Constants;
|
import com.basic.security.utils.ResolutionAdaptation;
|
|
import org.androidannotations.annotations.AfterViews;
|
import org.androidannotations.annotations.EFragment;
|
import org.androidannotations.annotations.UiThread;
|
import org.androidannotations.annotations.ViewById;
|
|
@EFragment
|
public class VideoViewFragment extends BaseFragment {
|
private static final int STORAGE_OK = 1023;
|
@ViewById
|
public VideoView videoView;
|
@ViewById
|
public View overlay;
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
return inflater.inflate(ResolutionAdaptation.fragment_video_view(), container, false);
|
}
|
|
@UiThread
|
public void show() {
|
super.show();
|
}
|
|
@UiThread
|
public void hide() {
|
super.hide();
|
}
|
|
@UiThread
|
public void showOverlay() {
|
try {
|
if (overlay != null) {
|
overlay.setVisibility(View.VISIBLE);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@UiThread
|
public void hideOverlay() {
|
try {
|
if (overlay != null) {
|
overlay.setVisibility(View.INVISIBLE);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@AfterViews
|
public void afterViews() {
|
if (ContextCompat.checkSelfPermission(mainActivity(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, STORAGE_OK);
|
} else {
|
playVideo();
|
}
|
}
|
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
switch (requestCode) {
|
case STORAGE_OK:
|
playVideo();
|
break;
|
default:
|
break;
|
}
|
}
|
|
private void playVideo() {
|
if (Constants.indoorOutdoorInOne) {
|
return;
|
}
|
if (Constants.stopCameraAndVideo) {
|
return;
|
}
|
videoView.setOnErrorListener((mp, what, extra) -> true);
|
videoView.setOutlineProvider(new ViewOutlineProvider() {
|
public void getOutline(View view, Outline outline) {
|
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), getActivity().getResources().getDimension(com.basic.security.utils.RUtils.R_dimen_corner_radius));
|
}
|
});
|
videoView.setClipToOutline(true);
|
videoView.setVideoPath("/sdcard/face.mp4");
|
videoView.setOnCompletionListener(mp -> {
|
// System.out.println("VideoViewFragment.playVideo 1");
|
mp.start();
|
mp.setLooping(true);
|
});
|
videoView.setOnPreparedListener(mp -> {
|
// System.out.println("VideoViewFragment.playVideo 2");
|
mp.start();
|
mp.setLooping(true);
|
});
|
}
|
|
@UiThread
|
public void videoViewStart() {
|
videoView.start();
|
}
|
}
|