![](/img/trans.png)
[英]How to set max duration record, release a file and start recording automatically using media recorder
[英]How to record using custom media recorder?
我正在為Android 2.1-2.3手機創建一個應用程序,我需要知道如何錄制視頻並在錄制視頻時實現閃光燈。 我從下面的各個網站上都看到了以下示例代碼,該代碼可在2.1上運行,但更高的版本和預覽屏幕仍然不顯示。
boolean recording=false;
Camera camera = null;
Parameters parameters;
SurfaceView cameraView = (SurfaceView) findViewById(R.id.surface_view);
holder = cameraView.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
holder.getSurface();
private void prepareRecorder()
{
Log.d("BROADCAST", "Camera not null");
recorder.setPreviewDisplay(holder.getSurface());
try{
recorder.prepare();
//implementing flash button below but fails as soon as recording begins when turned on
Button flash = (Button) findViewById (R.id.flash);
flash.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(camera == null){
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
}else{
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;
}
}});
} catch (IllegalStateException e) {
e.printStackTrace();
finish();
} catch (IOException e) {
e.printStackTrace();
finish();
}
}
public void surfaceCreated(SurfaceHolder holder)
{
prepareRecorder();
Log.v(TAG,"surfaceCreated");
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {}
public void surfaceDestroyed(SurfaceHolder holder)
{
recorder.release();
}
當我單擊下面的此按鈕時,錄制開始,但是在此之前屏幕為黑色,並且不顯示預覽。
private Button.OnClickListener myButtonOnClickListener = new Button.OnClickListener (){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (recording) {
recorder.stop();
recorder.release();// stops the recording process
startActivity(new Intent(""));
finish();
}
else {
recorder.start();
counter.start();
recording = true;
}
}
};
我可能很接近答案,但是我只需要一些指導,也許我在某處放錯了什么? 任何幫助就足夠了。 提前致謝
在您的prepareRecorder()方法上,在調用prepare()之前也添加此行;
recorder.setCamera(camera);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.