当相机开始记录我的应用程序时抛出此异常:
E/MediaRecorder( 3316): setOutputFile called in an invalid state(2):
E/AndroidRuntime( 3316): java.lang.IllegalStateException
E/AndroidRuntime( 3316): at android.media.MediaRecorder._setOutputFile(Native Method)
E/AndroidRuntime( 3316): at android.media.MediaRecorder.prepare(MediaRecorder.java:542)
E/AndroidRuntime( 3316): at com.android.cameradiag.VideoCamera.initializeRecorder(VideoCamera.java:448)
E/AndroidRuntime( 3316): at com.android.cameradiag.VideoCamera.startVideoRecording(VideoCamera.java:638)
Run Code Online (Sandbox Code Playgroud)
我的代码是:
mMediaRecorder = new MediaRecorder();
// Unlock the camera object before passing it to media recorder.
mCameraDevice.unlock();
mMediaRecorder.setCamera(mCameraDevice);
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// mMediaRecorder.setProfile(mProfile);
mMediaRecorder.setMaxDuration(mMaxVideoDurationInMs);
// Set output file.
if (mStorageStatus != STORAGE_STATUS_OK) {
mMediaRecorder.setOutputFile("/dev/null");
} else {
// Try Uri in the intent first. If it doesn't exist, use our own
// …Run Code Online (Sandbox Code Playgroud) 我正在使用API 2.1,我的调试显示最大缩放值为15.此处的代码不会使相机变焦.如何让相机变焦?
camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.set("orientation", "portrait");
parameters.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_TWILIGHT);
int zoom = parameters.getMaxZoom();
Log.d(TAG, "Zoom " + zoom);
parameters.setZoom(15);
camera.setParameters(parameters);
Run Code Online (Sandbox Code Playgroud) 在我的Android相机应用程序中,我已将应用程序清单设置为Portrait.但是当我正在运行我的相机应用程序时,相机预览显示为横向而不是纵向.
我不知道问题出在哪里,但我需要帮助.我想将我的相机预览设置为普通相机预览.并将应用程序设置为纵向.
有什么解决方案吗?
嘿伙计我刚为用户添加了一项功能,可以从我的应用程序中捕获图片,并且我已正确设置相机意图[我至少相信如此].我在'xml'文件中设置了一个按钮,并在'class/java'文件中相应地设置了intent和按钮.当测试应用程序按钮工作并加载本机Android 4.0.4相机,并拍摄照片很好,但当我点击'选中标记'[旧版Android上的'确定'按钮]它不会返回到应用程序.相机仍然保持所有功能,它不会冻结或任何东西.我仍然可以选择重拍,或选择取消; 只是'确定/选中标记'按钮不起作用.
public class XXXXXXXXXXX extends Activity
{
Button button;
String path;
boolean taken;
static final String PHOTO_TAKEN = "photo_taken";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.XXXXXXXX);
button = ( Button ) findViewById( R.id.take_picture );
button.setOnClickListener( new ButtonClickHandler() );
path = Environment.getExternalStorageDirectory() + "/images/testing-cam.jpg";
}
public class ButtonClickHandler implements View.OnClickListener
{
public void onClick( View view )
{
Log.i("Button", ".onClick()" );
startCameraActivity();
}
}
protected void startCameraActivity()
{
Log.i("Start", "CameraActivity()" );
File file = new File( _path ); …Run Code Online (Sandbox Code Playgroud) 所以我想要一个按钮,用户可以在闪光灯开/关/自动之间进行选择.此按钮位于我的相机预览活动中,但我不确定如何使用一个按钮检查某些参数.
//Flash Button
final Button flashButton = (Button) findViewById(id.camera_flash);
flashButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(mCamera != null){
Parameters p = mCamera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_AUTO);
mCamera.setParameters(p);
mCamera.startPreview();
flashButton.setText("AUTO");
Log.e("Torch","Torch On");
}else{
Parameters p = mCamera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
mCamera.setParameters(p);
mCamera.release();
mCamera=null;
flashButton.setText("OFF");
}// maybe another one for ON
}
Run Code Online (Sandbox Code Playgroud)
现在它的设置是,mCamera!=null但是如何检查闪光灯是否为AUTO,ON或OFF?我想可能有一个SWITCH?我试图将这些设置保存在一个按钮中,所以它的切换类型.有人可以帮我弄这个吗?
提前致谢.
更新的代码
//Flash Button
final Button flashButton = (Button) findViewById(id.camera_flash);
flashButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Parameters p = mCamera.getParameters();
// …Run Code Online (Sandbox Code Playgroud) 我想制作一个应用程序,当我按下某个按钮时我想打开凸轮然后捕获图像并在我捕获它之后.
我想在一个新的活动中打开这个图像,将这个图像放在这个新的活动中,除了两个按钮一个删除它,另一个按钮将它保存在平板电脑的某个目录中.
我用代码打开凸轮:
Open_CAM.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
Run Code Online (Sandbox Code Playgroud)
我不知道在那之后我该怎么办?
请帮忙...
我正在使用本教程:
http://www.vogella.com/articles/AndroidCamera/article.html
要捕获图像并将其保存在SD卡上,但每当我运行此程序时,获取:不幸的是App已停止
错误说:
引起:java.lang.reflect.InvocationTargetException
第39行是:
camera.takePicture(null,null,new PhotoHandler(getApplicationContext()));
Logcat输出:
05-29 16:19:38.351: E/AndroidRuntime(767): FATAL EXCEPTION: main
05-29 16:19:38.351: E/AndroidRuntime(767): java.lang.IllegalStateException: Could not execute method of the activity
05-29 16:19:38.351: E/AndroidRuntime(767): at android.view.View$1.onClick(View.java:3599)
05-29 16:19:38.351: E/AndroidRuntime(767): at android.view.View.performClick(View.java:4204)
05-29 16:19:38.351: E/AndroidRuntime(767): at android.view.View$PerformClick.run(View.java:17355)
05-29 16:19:38.351: E/AndroidRuntime(767): at android.os.Handler.handleCallback(Handler.java:725)
05-29 16:19:38.351: E/AndroidRuntime(767): at android.os.Handler.dispatchMessage(Handler.java:92)
05-29 16:19:38.351: E/AndroidRuntime(767): at android.os.Looper.loop(Looper.java:137)
05-29 16:19:38.351: E/AndroidRuntime(767): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-29 16:19:38.351: E/AndroidRuntime(767): at java.lang.reflect.Method.invokeNative(Native Method)
05-29 16:19:38.351: E/AndroidRuntime(767): at java.lang.reflect.Method.invoke(Method.java:511)
05-29 16:19:38.351: E/AndroidRuntime(767): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) …Run Code Online (Sandbox Code Playgroud) 是否可以拍摄开放式相机?我尝试了意图,但它的开放相机,但我不想打开相机.我试过跟随
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, 1);
Run Code Online (Sandbox Code Playgroud)
然后接收活动.但是如何打开相机?
我正在尝试使用外部Android摄像头将图像放入ImageView中,但是我收到了"失败传递结果ResultInfo"错误.这是我的代码:
单击按钮以启动相机应用程序
public void takePhoto(View v) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Creating the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
Log.e(TAG,"something went wrong", ex);
return;
}
// Continue only if the File was successfully created
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent, REQUEST_CODE);
}
}
}
Run Code Online (Sandbox Code Playgroud)
命名和创建临时.文件:
String mCurrentPhotoPath;
private File createImageFile() …Run Code Online (Sandbox Code Playgroud) 基本上我创建了一个不添加视频录制的简单android相机应用程序,我点击了此链接 android相机应用程序教程链接
问题是当我从前置摄像头捕获图像时,单击捕获按钮后,显示镜像的图像就像我们站在镜子前面一样。例如我有右侧箭头图像,但是当我捕获时,它会预览左侧箭头。对不起英语。
camera android android-camera android-camera-intent android-studio