android sta设备名,Android视频录制-mediaRecorder.start上的IllegalSta...

我正在关注https://developer.android.com/guide/topics/media/camera.html#capture-video上的教程

因此,尝试启动相机时,请遵循以下顺序:

> Camera.open

> camera.unlock

> mediaRecorder.setCamera

> mediaRecorder.setAudioSource

> mediaRecorder.setVideoSource

> mediaRecorder.setProfile

> mediaRecorder.setOutputFile

> mediaRecorder.prepare

> mediaRecorder.start由于遵循了运行5.0.2的指南,因此我可以找出可能出了什么问题.

private Camera mCamera;

private MediaRecorder mMediaRecorder;

public CameraActivity() {

mCamera = getCameraInstance();

mMediaRecorder = new MediaRecorder();

}

public static Camera getCameraInstance(){

Camera c = null;

try {

c = Camera.open();

}

catch (Exception e) { ... }

return c;

}

public void startRecording() {

mCamera.unlock();

mMediaRecorder.setCamera(mCamera);

mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);

mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

mMediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW));

mMediaRecorder.setOutputFile(getOutputMediaFile(MEDIA_TYPE_VIDEO).toString());

try {

mMediaRecorder.prepare();

}

catch (IOException e) { ... }

catch (IllegalStateException e) { ... }

try {

mMediaRecorder.start();

}

catch (Exception e) {

Log.d(TAG, "exception on mediaRecorder.start" + e.toString()); // This is the exception that gets thrown on .start

}

}

我的清单包含所有必要的权限

我也尝试过手动设置格式,而不是使用.setProfile,结果相同

mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);

更新

该文件确实已创建,尽管它当然无法播放,所以我知道它可以正常工作.准备调用不会引发异常,而是在启动之前发生.在start()上抛出相同的异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值