android 录像程序实现,如何在我的Android应用程序中录制视频?

下面是另一个正在工作的示例public class EnregistrementVideoStackActivity extends Activity implements SurfaceHolder.Callback {

private SurfaceHolder surfaceHolder;

private SurfaceView surfaceView;

public MediaRecorder mrec = new MediaRecorder();

private Button startRecording = null;

File video;

private Camera mCamera;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.camera_surface);

Log.i(null , "Video starting");

startRecording = (Button)findViewById(R.id.buttonstart);

mCamera = Camera.open();

surfaceView = (SurfaceView) findViewById(R.id.surface_camera);

surfaceHolder = surfaceView.getHolder();

surfaceHolder.addCallback(this);

surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

}

@Override

public boolean onCreateOptionsMenu(Menu menu)

{

menu.add(0, 0, 0, "StartRecording");

menu.add(0, 1, 0, "StopRecording");

return super.onCreateOptionsMenu(menu);

}

@Override

public boolean onOptionsItemSelected(MenuItem item)

{

switch (item.getItemId())

{

case 0:

try {

startRecording();

} catch (Exception e) {

String message = e.getMessage();

Log.i(null, "Problem Start"+message);

mrec.release();

}

break;

case 1: //GoToAllNotes

mrec.stop();

mrec.release();

mrec = null;

break;

default:

break;

}

return super.onOptionsItemSelected(item);

}

protected void startRecording() throws IOException

{

mrec = new MediaRecorder();  // Works well

mCamera.unlock();

mrec.setCamera(mCamera);

mrec.setPreviewDisplay(surfaceHolder.getSurface());

mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA);

mrec.setAudioSource(MediaRecorder.AudioSource.MIC);

mrec.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

mrec.setPreviewDisplay(surfaceHolder.getSurface());

mrec.setOutputFile("/sdcard/zzzz.3gp");

mrec.prepare();

mrec.start();

}

protected void stopRecording() {

mrec.stop();

mrec.release();

mCamera.release();

}

private void releaseMediaRecorder(){

if (mrec != null) {

mrec.reset();   // clear recorder configuration

mrec.release(); // release the recorder object

mrec = null;

mCamera.lock();           // lock camera for later use

}

}

private void releaseCamera(){

if (mCamera != null){

mCamera.release();        // release the camera for other applications

mCamera = null;

}

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

if (mCamera != null){

Parameters params = mCamera.getParameters();

mCamera.setParameters(params);

}

else {

Toast.makeText(getApplicationContext(), "Camera not available!", Toast.LENGTH_LONG).show();

finish();

}

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

mCamera.stopPreview();

mCamera.release();

}}

Camera_Surfacee.xml<?xml  version="1.0" encoding="UTF-8"?>

layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" >

android:id="@+id/surface_camera"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_weight="1" />

android:id="@+id/buttonstart"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/record_start" />

当然,这些许可也包括在清单中:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值