我的活动:
public class Camcorder extends Activity { private CamcorderVIEw camcorderVIEw; private boolean recording = false; /** Called when the activity is first created. */ @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //irrelevant code camcorderVIEw = (CamcorderVIEw) findVIEwByID(R.ID.camcorder_prevIEw); } @OverrIDe public boolean onKeyDown(int keyCode,KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { if (recording) { camcorderVIEw.stopRecording(); finish(); } else { recording = true; camcorderVIEw.startRecording(); } return true; } return super.onKeyDown(keyCode,event); } }
CamcorderVIEw类:
public class CamcorderVIEw extends SurfaceVIEw implements SurfaceHolder.Callback {MediaRecorder recorder;SurfaceHolder holder;String outputfile = "/sdcard/default.mp4";public CamcorderVIEw(Context context,AttributeSet attrs) { super(context,attrs); holder = getHolder(); holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setVIDeoSource(MediaRecorder.VIDeoSource.DEFAulT); recorder.setoutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setVIDeoEncoder(MediaRecorder.VIDeoEncoder.MPEG_4_SP); // recorder.setVIDeoSize(480,320); // recorder.setVIDeoFrameRate(15); // recorder.setMaxDuration(10000);}public voID surfaceCreated(SurfaceHolder holder) { recorder.setoutputfile(outputfile); recorder.setPrevIEwdisplay(holder.getSurface()); if (recorder != null) { try { recorder.prepare(); } catch (IllegalStateException e) { Log.e("IllegalStateException",e.toString()); } catch (IOException e) { Log.e("IOException",e.toString()); } }}public voID surfaceChanged(SurfaceHolder holder,int format,int wIDth,int height) {}public voID surfaceDestroyed(SurfaceHolder holder) {}public voID setoutputfile(String filename){ outputfile = filename; recorder.setoutputfile(filename);}public voID startRecording(){ recorder.start();}public voID stopRecording(){ recorder.stop(); recorder.release();}}解决方法 嘿,我想你没试过这个.所以请检查此链接,如果您有任何问题,请告诉我
video recording example 总结
以上是内存溢出为你收集整理的在Android中录制,保存和播放视频全部内容,希望文章能够帮你解决在Android中录制,保存和播放视频所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)