Can you attach the logcat output? Source code would also be helpful. On Thu, Mar 12, 2009 at 9:18 AM, crowcasso <crowca...@gmail.com> wrote: > > Currently the above code is crashing for me (even after fixing the 3 > params instead of 2) when performing takePicture() with a IOException: > > W/System.err( 1470): java.io.IOException: takePicture failed > W/System.err( 1470): at android.hardware.Camera.native_takePicture > (Native Method) > > I've written a different Camera application that crashes as well on > takePicture(). Is this a known issue? Any suggestions? > > > On Mar 10, 6:50 pm, Streets Of Boston <flyingdutc...@gmail.com> wrote: >> Maybe this piece of code won't work, but i'm writing an app that >> successfully uses thecamera. >> No crashes :) ... ... so far ... :=) >> >> On Feb 17, 1:35 am, cindy <ypu01...@yahoo.com> wrote: >> >> > I tried google'scameraAPI sample code. I found there are 2 problems: >> > 1> It only can take picture in Landscape orientation >> > 2> After click the space "key", the application crashes. WOw:) >> >> > XML: >> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ >> > android" >> > android:layout_width="fill_parent" >> > android:layout_height="fill_parent" >> > android:orientation="vertical"> >> > <SurfaceView android:id="@+id/surface" >> > android:layout_width="fill_parent" >> > android:layout_height="10dip" >> > android:layout_weight="1"> >> > </SurfaceView> >> > </LinearLayout> >> > Java code: >> > /** >> > * Copyright (c) 2007, Google Inc. >> > * >> > * Licensed under the Apache License, Version 2.0 (the "License"); >> > * you may not use this file except in compliance with the License. >> > * You may obtain a copy of the License at >> > * >> > * http://www.apache.org/licenses/LICENSE-2.0 >> > * >> > * Unless required by applicable law or agreed to in writing, >> > software >> > * distributed under the License is distributed on an "AS IS" BASIS, >> > * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >> > implied. >> > * See the License for the specific language governing permissions >> > and >> > * limitations under the License. >> > */ >> >> > package com.android.cameraapitest; >> >> > import android.app.Activity; >> > import android.content.Intent; >> > import android.graphics.Canvas; >> > import android.graphics.Paint; >> > import android.graphics.PixelFormat; >> > import android.graphics.Rect; >> > import android.net.Uri; >> > import android.os.Handler; >> > import android.os.Message; >> > import android.os.Bundle; >> > import android.provider.MediaStore.Images; >> > import android.provider.MediaStore.Video; >> > import android.view.Menu; >> > import android.view.MenuItem; >> > import android.view.SurfaceHolder; >> > import android.view.SurfaceView; >> > import android.view.KeyEvent; >> > import android.hardware.Camera; >> >> > import android.util.Log; >> >> > public class CameraApiTest extends Activity implements >> > SurfaceHolder.Callback >> > { >> > private static final String TAG = "CameraApiTest"; >> > CameramCamera; >> > boolean mPreviewRunning = false; >> >> > public void onCreate(Bundle icicle) >> > { >> > super.onCreate(icicle); >> >> > Log.e(TAG, "onCreate"); >> >> > getWindow().setFormat(PixelFormat.TRANSLUCENT); >> >> > setContentView(R.layout.camera_api_test); >> > mSurfaceView = (SurfaceView)findViewById(R.id.surface); >> >> > mSurfaceHolder = mSurfaceView.getHolder(); >> > mSurfaceHolder.addCallback(this); >> > mSurfaceHolder.setType >> > (SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); >> > } >> >> > public boolean onCreateOptionsMenu(android.view.Menu menu) { >> > MenuItem item = menu.add(0, 0, 0, "goto gallery"); >> > item.setOnMenuItemClickListener(new >> > MenuItem.OnMenuItemClickListener() { >> > public boolean onMenuItemClick(MenuItem item) { >> > Uri target = Uri.parse("content://media/external/ >> > images/media"); >> > Intent intent = new Intent(Intent.ACTION_VIEW, >> > target); >> > startActivity(intent); >> > return true; >> > } >> > }); >> > return true; >> > } >> >> > @Override >> > protected void onRestoreInstanceState(Bundle savedInstanceState) >> > { >> > super.onRestoreInstanceState(savedInstanceState); >> > } >> >> > Camera.PictureCallback mPictureCallback = new >> >Camera.PictureCallback() { >> > public void onPictureTaken(byte[] data,Camerac) { >> > Log.e(TAG, "PICTURE CALLBACK: data.length = " + >> > data.length); >> > mCamera.startPreview(); >> > } >> > }; >> >> > public boolean onKeyDown(int keyCode, KeyEvent event) >> > { >> > if (keyCode == KeyEvent.KEYCODE_BACK) { >> > return super.onKeyDown(keyCode, event); >> > } >> >> > if (keyCode == KeyEvent.KEYCODE_SPACE) { >> > mCamera.takePicture(null, mPictureCallback); >> > return true; >> > } >> >> > return false; >> > } >> >> > protected void onResume() >> > { >> > Log.e(TAG, "onResume"); >> > super.onResume(); >> > } >> >> > protected void onSaveInstanceState(Bundle outState) >> > { >> > super.onSaveInstanceState(outState); >> > } >> >> > protected void onStop() >> > { >> > Log.e(TAG, "onStop"); >> > super.onStop(); >> > } >> >> > public void surfaceCreated(SurfaceHolder holder) >> > { >> > Log.e(TAG, "surfaceCreated"); >> > mCamera =Camera.open(); >> > //mCamera.startPreview(); >> > } >> >> > public void surfaceChanged(SurfaceHolder holder, int format, int >> > w, int h) >> > { >> > Log.e(TAG, "surfaceChanged"); >> >> > // XXX stopPreview() will crash if preview is not running >> > if (mPreviewRunning) { >> > mCamera.stopPreview(); >> > } >> >> > Camera.Parameters p = mCamera.getParameters(); >> > p.setPreviewSize(w, h); >> > mCamera.setParameters(p); >> > mCamera.setPreviewDisplay(holder); >> > mCamera.startPreview(); >> > mPreviewRunning = true; >> > } >> >> > public void surfaceDestroyed(SurfaceHolder holder) >> > { >> > Log.e(TAG, "surfaceDestroyed"); >> > mCamera.stopPreview(); >> > mPreviewRunning = false; >> > mCamera.release(); >> > } >> >> > private SurfaceView mSurfaceView; >> > private SurfaceHolder mSurfaceHolder; >> >> > }- Hide quoted text - >> >> > - Show quoted text - > > > >
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---