2013-05-30 68 views
0

我有一个活动,可以将活动设置为lanscape,但是如果活动启动时手机处于肖像模式,则出现此错误,活动停止并返回到其他活动活动:导致崩溃的方向错误

05-30 11:06:48.335: D/DOMX(125): ERROR: failed check:(eError == OMX_ErrorNone) || (eError == OMX_ErrorNoMore) - returning error: 0x80001005 - Error returned from OMX API in ducati 
05-30 11:06:48.335: E/CameraHAL(125): Error while configuring rotation 0x80001005 
05-30 11:06:48.460: D/DOMX(125): ERROR: failed check:(eError == OMX_ErrorNone) || (eError == OMX_ErrorNoMore) - returning error: 0x80001005 - Error returned from OMX API in ducati 
05-30 11:06:48.460: E/CameraHAL(125): Error while configuring rotation 0x80001005 
05-30 11:06:48.765: E/CameraHAL(125): Adapter state switch PREVIEW_ACTIVE Invalid Op! event = 0xf 

的活动正在从也被设置为横向另一个活动调用,如果切换,同时保持设备在景观..从持有肖像的设备,只有当活动它不会崩溃发射的时间..

在这两个活动中我设置在onCreate()像这样的方向:

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

这似乎也与事实,我按一个CameraPreview表面被推出,所以我包括相机类柜面的活动做的问题是:

public class KNCamLayer extends SurfaceView { 
     Camera camera; 
     SurfaceHolder previewHolder; 

     public KNCamLayer(Context context) 
     { 
      super(context); 
      previewHolder = this.getHolder(); 

      //previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
      previewHolder.addCallback(surfaceHolderListener); 

     } 

     SurfaceHolder.Callback surfaceHolderListener = new SurfaceHolder.Callback() { 

      public void surfaceCreated(SurfaceHolder holder) { 
       camera=Camera.open(); 
      try { 
       camera.setPreviewDisplay(previewHolder); 

      } 
       catch (Throwable e){ } 
      } 
      public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) 
      { 
       Parameters params = camera.getParameters(); 
       //params.setPreviewSize(width, height); 
       params.setPictureFormat(PixelFormat.JPEG); 
       camera.setParameters(params); 
       camera.startPreview(); 


      } 
      public void surfaceDestroyed(SurfaceHolder arg0) 
      { 
       camera.stopPreview(); 
       camera.release(); 
      } 

     }; 

     public void onResume() { 
      camera.startPreview(); 

     } 

     public void onPause() { 
      // TODO Auto-generated method stub 
      camera.stopPreview(); 
     } 

} 

的CameraView在活动的的onResume()添加像这样:

camPreview = new KNCamLayer(this); 
     frame.addView(camPreview, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 

回答

0

好了,所以它看来,如果我在清单中设置定向该活动..问题消失了..但我没有understan正是为什么。
修复:

在清单android:screenOrientation="landscape"的活动

+0

it'e因为这个属性力量相机的活动是在景观,并没有给选项设备本身来决定哪些查看了它要执行取向时没有定义的 – Saqib