视频的录制与预览
package com.yzl.xyb.friends;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.Toast;
import com.yzl.xyb.friends.view.MovieRecorderView;
import com.yzl.xyb.friends.view.MovieRecorderView.OnRecordFinishListener;
/**
* 录制视频
* @author hou
*
*/
public class RecorderActivity extends Activity {
private MovieRecorderView mRecorderView;
private Button mShootBtn;
private boolean isFinish = true;
private String userId = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.record_activity);
// userId=getIntent().getParcelableExtra("userId");
mRecorderView = (MovieRecorderView) findViewById(R.id.movieRecorderView);
mShootBtn = (Button) findViewById(R.id.shoot_button);
mShootBtn.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
mRecorderView.record(new OnRecordFinishListener() {
@Override
public void onRecordFinish() {
Log.i("MotionEvent>>>","ACTION_DOWN");
handler.sendEmptyMessage(1);
}
});
} else if (event.getAction() == MotionEvent.ACTION_UP) {
Log.i("MotionEvent>>>","ACTION_UP");
if (mRecorderView.getTimeCount() > 1)
handler.sendEmptyMessage(1);
else {
if (mRecorderView.getmVecordFile() != null)
mRecorderView.getmVecordFile().delete();
mRecorderView.stop();
Toast.makeText(RecorderActivity.this, "时间太短,录制失败", Toast.LENGTH_SHORT).show();
}
}
return true;
}
});
}
@Override
public void onResume() {
super.onResume();
isFinish = true;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
isFinish = false;
mRecorderView.stop();
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
}
@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
finishActivity();
Log.i("isFinish>>>",isFinish+"");
}
};
private void finishActivity() {
if (isFinish) {
mRecorderView.stop();
Intent intent = new Intent(RecorderActivity.this, TopicActivity.class);
Bundle mBundle = new Bundle();
mBundle.putString("path", mRecorderView.getmVecordFile().toString());
mBundle.putString("userId", userId);
intent.putExtras(mBundle);
startActivity(intent);
}
}
public interface OnShootCompletionListener {
public void OnShootSuccess(String path, int second);
public void OnShootFailure();
}
}










