package com.lqr;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.lqr.videorecordview.LQRVideoRecordView;
public class MainActivity extends AppCompatActivity implements LQRVideoRecordView.OnRecordStausChangeListener {
private LQRVideoRecordView mVrvVideo;
private Button mBtnVideo;
private TextView mTvTipOne;
private TextView mTvTipTwo;
private RecordProgress mRp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initView();
initListener();
}
private void initView() {
setContentView(R.layout.activity_main);
mVrvVideo = (LQRVideoRecordView) findViewById(R.id.vrvVideo);
mBtnVideo = (Button) findViewById(R.id.btnVideo);
mTvTipOne = (TextView) findViewById(R.id.tvTipOne);
mTvTipTwo = (TextView) findViewById(R.id.tvTipTwo);
mRp = (RecordProgress) findViewById(R.id.rp);
mRp.setRecordTime(10);
}
private void initListener() {
mBtnVideo.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mRp.start();
mRp.setProgressColor(Color.parseColor("#1AAD19"));
mTvTipOne.setVisibility(View.VISIBLE);
mTvTipTwo.setVisibility(View.GONE);
//开始录制
mVrvVideo.record(MainActivity.this);
break;
case MotionEvent.ACTION_UP:
mRp.stop();
mTvTipOne.setVisibility(View.GONE);
mTvTipTwo.setVisibility(View.GONE);
//判断时间
if (mVrvVideo.getTimeCount() > 3) {
if (!isCancel(v, event)) {
onRecrodFinish();
}
} else {
if (!isCancel(v, event)) {
Toast.makeText(getApplicationContext(), "视频时长太短", Toast.LENGTH_SHORT).show();
if (mVrvVideo.getVecordFile() != null)
mVrvVideo.getVecordFile().delete();
}
}
resetVideoRecord();
break;
case MotionEvent.ACTION_MOVE:
if (isCancel(v, event)) {
mTvTipOne.setVisibility(View.GONE);
mTvTipTwo.setVisibility(View.VISIBLE);
mRp.setProgressColor(Color.parseColor("#FF1493"));
} else {
mTvTipOne.setVisibility(View.VISIBLE);
mTvTipTwo.setVisibility(View.GONE);
mRp.setProgressColor(Color.parseColor("#1AAD19"));
}
break;
}
return true;
}
});
}
private boolean isCancel(View v, MotionEvent event) {
int[] location = new int[2];
v.getLocationOnScreen(location);
if (event.getRawX() < location[0] || event.getRawX() > location[0] + v.getWidth() || event.getRawY() < location[1] - 40) {
return true;
}
return false;
}
@Override
public void onRecrodFinish() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mTvTipOne.setVisibility(View.GONE);
mTvTipTwo.setVisibility(View.GONE);
resetVideoRecord();
//打开播放界面
Intent intent = new Intent(MainActivity.this, SuccessActivity.class);
Bundle bundle = new Bundle();
bundle.putString("text", mVrvVideo.getVecordFile().toString());
intent.putExtras(bundle);
startActivity(intent);
// Toast.makeText(getApplicationContext(), "录制成功", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onRecording(int timeCount, int recordMaxTime) {
}
@Override
public void onRecordStart() {
}
/**
* 停止录制(释放相机后重新打开相机)
*/
public void resetVideoRecord() {
mVrvVideo.stop();
mVrvVideo.openCamera();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}