package com.basic.security.fragment;
|
|
import android.content.pm.PackageManager;
|
import android.database.Cursor;
|
import android.graphics.Outline;
|
import android.media.MediaPlayer;
|
import android.net.Uri;
|
import android.os.SystemClock;
|
import android.provider.MediaStore;
|
import android.support.annotation.NonNull;
|
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.content.ContextCompat;
|
import android.util.Log;
|
import android.view.View;
|
import android.view.ViewOutlineProvider;
|
import android.widget.VideoView;
|
|
import com.basic.security.R;
|
import com.basic.security.base.BaseApplication;
|
import com.basic.security.base.BaseFragment;
|
|
import org.androidannotations.annotations.AfterViews;
|
import org.androidannotations.annotations.Background;
|
import org.androidannotations.annotations.EFragment;
|
import org.androidannotations.annotations.UiThread;
|
import org.androidannotations.annotations.ViewById;
|
|
|
@EFragment(R.layout.fragment_video_view)
|
public class VideoViewFragment extends BaseFragment {
|
|
private static final int STORAGE_OK = 1023;
|
@ViewById
|
public VideoView videoView;
|
@ViewById
|
public View overlay;
|
|
@UiThread
|
public void show() {
|
// videoView.setVisibility(View.VISIBLE);
|
}
|
|
@UiThread
|
public void hide() {
|
// videoView.setVisibility(View.INVISIBLE);
|
}
|
|
@UiThread
|
public void showOverlay() {
|
overlay.setVisibility(View.VISIBLE);
|
}
|
|
@UiThread
|
public void hideOverlay() {
|
if (overlay != null) {
|
overlay.setVisibility(View.INVISIBLE);
|
}
|
}
|
|
@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 {
|
// BaseApplication.getApplication().initLocalSetting();
|
playVideo();
|
}
|
}
|
|
@Override
|
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() {
|
videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
|
@Override
|
public boolean onError(MediaPlayer mp, int what, int extra) {
|
return true;
|
}
|
});
|
videoView.setOutlineProvider(new ViewOutlineProvider() {
|
@Override
|
public void getOutline(View view, Outline outline) {
|
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), getActivity().getResources().getDimension(R.dimen.corner_radius));
|
}
|
});
|
videoView.setClipToOutline(true);
|
videoView.setVideoPath("/sdcard/face.mp4");
|
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
|
@Override
|
public void onCompletion(MediaPlayer mp) {
|
mp.start();
|
mp.setLooping(true);
|
}
|
});
|
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
|
@Override
|
public void onPrepared(MediaPlayer mp) {
|
mp.start();
|
mp.setLooping(true);
|
int duration = mp.getDuration();
|
new Thread(){
|
@Override
|
public void run() {
|
while (true) {
|
try {
|
// System.out.println(mp);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
SystemClock.sleep(1000);
|
}
|
}
|
}.start();
|
}
|
});
|
}
|
|
// @Background
|
// public void checkVideoViewIsPlaying() {
|
// while (true) {
|
// try {
|
// SystemClock.sleep(3000);
|
// if (!videoView.isPlaying()) {
|
// videoViewStart();
|
// }
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
// }
|
// }
|
|
@UiThread
|
public void videoViewStart() {
|
videoView.start();
|
}
|
|
}
|