Articles of android camera

什么是相同的setDisplayOrientation()的Camera2 API?

使用android.hardware.Camera ,为了让摄像机输出适当地跟踪设备移动,我们需要将OrientationEventListener到Camera上的setDisplayOrientation()方法。 这样,当用户扭转设备时,我们可以保持相机预览中的“向上”与现实世界中的“向上”同步。 对于围绕Y轴旋转设备(即,从横向翻转到反向横向或向后),尤其如此。 对于大多数方向更改, android.hardware.camera2 API似乎“正常工作”。 但是,对于Y轴旋转(横向 – >反向横向或反向横向),相机预览会反转。 在Camera为Camera2 API调用setDisplayOrientation()相当于什么,所以我们可以处理这种情况?

将SurfaceTexture与RenderScript结合使用

我想在android上的GPU上进行相机image processing。 在我目前的设置中,我使用SurfaceTexture从相机图像流中捕获帧作为OpenGL ES纹理。 这是在我的着色器中访问相机流的有效方法。 ( http://developer.android.com/reference/android/graphics/Sur​​faceTexture.html ) 现在我想开始使用新的RenderScript API而不是直接使用OenGL ES。 ( http://developer.android.com/guide/topics/renderscript/index.html ) 但是要创建SurfaceTexture,我需要将openGl纹理ID传递给构造函数。 遗憾的是,纹理ID不可用(RenderScript使用Allocation类加载纹理,不会显示纹理ID)。 所以我在使用RenderScript时无法创建SurfaceTexture。 我已经阅读了关于renderscript的所有文档(它仍然非常稀疏)并查看了示例,但它们没有关于该主题的信息。 所以我的问题是:是否可以将SurfaceTexture与RenderScript结合使用,还是有其他一些在RenderScript Graphics脚本中使用实时相机流的有效方法?

如何在Android手机上静音相机快门声音

是否有任何方法可以在Android(非root手机)中静音相机快门声音? 拍照时我使用此代码静音我的音频声音: AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE); int streamType = AudioManager.STREAM_SYSTEM; mgr.setStreamSolo(streamType, true); mgr.setRingerMode(AudioManager.RINGER_MODE_SILENT); mgr.setStreamMute(streamType, true); 我把声音静音,然后把手机静音。 mCamera.takePicture(null, null, photoCallback); 然后拍照 它正在开发HTC HERO, HTC Desire, Motorola ME860, MotoA953 。 但是,当我在Samsung Tab p1000和Sony Experia R800i上进行测试时,它无法正常工作。 还有其他工作吗?

广播接收器不会收到相机事件

我正在尝试创建一个可以检测用户何时拍照的应用。 我设置了一个广播接收器类,并通过以下方式将其注册在清单文件中: 无论我尝试做什么,该程序都不会收到广播。 这是我的接收器类: public class photoReceiver extends BroadcastReceiver { private static final String TAG = “photoReceiver”; @Override public void onReceive(Context context, Intent intent) { CharSequence text = “caught it”; int duration = Toast.LENGTH_LONG; Log.d(TAG, “Received new photo”); Toast toast = Toast.makeText(context, text, duration); toast.show(); } } 如果我删除清单和我的活动中的mimeType行,我会发送自己的广播 Intent intent = new Intent(“com.android.camera.NEW_PICTURE”); sendBroadcast(intent); 然后我成功收到广播,可以看到日志和吐司窗口​​。 […]

autoFocus抛出exception

我已经尝试了一切,但我仍然无法解决这个问题。 我正在应用程序中实现相机function,一切正常,除了自动对焦。 当我调用autoFocus()时,它会抛出exception,我无法理解为什么。 我在Desire HD上运行代码。 码: @Override protected void onStart() { super.onStart(); //grab seurface view and callback cameraView = (CameraSurfaceView) findViewById(R.id.cameraView); try{ camera = Camera.open(); cameraView.setCamera(camera); //release previous autofocus and assign new one camera.cancelAutoFocus(); camera.autoFocus(new Camera.AutoFocusCallback() { public void onAutoFocus(boolean success, Camera camera) { // TODO Auto-generated method stub }}); } catch (Exception e) { […]

从WebView中的相机或图库上传图像

此应用程序中的WebView打开一个带有上传按钮的页面。 下面是允许打开对话框以从库或相机上传图像的代码块。 在我的活动中我有: private WebView wv; //make HTML upload button work in Webview private ValueCallback mUploadMessage; private final static int FILECHOOSER_RESULTCODE=1; @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { if(requestCode==FILECHOOSER_RESULTCODE) { if (null == mUploadMessage) return; Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData(); mUploadMessage.onReceiveValue(result); mUploadMessage = […]

如何检查设备是否有闪光灯led android

如何检查设备是否有摄像头(手电筒)。 我在谈论Android操作系统的设备? 我已经看到了一些解决方案,这些解决方案讨论了如何打开和关闭LED,但如果设备甚至没有LED,会发生什么。 打开相机我正在使用camera.open()

CropView的裁剪相机预览

我有一个固定宽度和高度的TextureView,我想在其中显示相机预览。 我需要裁剪相机预览,以便它看起来不会在我的TextureView中拉伸。 怎么做种植? 如果我需要使用OpenGL,如何将Surface Texture绑定到OpenGL以及如何使用OpenGL进行裁剪? public class MyActivity extends Activity implements TextureView.SurfaceTextureListener { private Camera mCamera; private TextureView mTextureView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_options); mTextureView = (TextureView) findViewById(R.id.camera_preview); mTextureView.setSurfaceTextureListener(this); } @Override public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { mCamera = Camera.open(); try { mCamera.setPreviewTexture(surface); mCamera.startPreview(); } catch (IOException ioe) { […]

BufferQueue被放弃后我该怎么办?

我正在使用纹理视图在我的Android应用程序中显示相机的预览。 然而,我注意到,每次我的应用程序暂停时,我都会收到此错误: 03-18 18:23:44.315: W/BufferQueue(19582): [unnamed-19582-20] cancelBuffer: BufferQueue has been abandoned! 有人能告诉我这里发生了什么吗? 当我的应用程序暂停时,我所做的就是从onSurfaceTextureDestroyed()所有这样的内容 public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { mCamera.setPreviewCallback(null); mCamera.stopPreview(); mCamera.release(); return true; }

Android无法使用Front Facing Camera录制video,MediaRecorder启动失败:-19

我有两个不同的代码库有同样的问题。 第一个是直接从developer.android.com复制的代码: http : //developer.android.com/guide/topics/media/camera.html#custom-camera 第二个是这段代码: http://android-er.blogspot.com.au/2011/10/simple-exercise-of-video-capture-using.html 两者都可以正常使用后置摄像头,但是一旦我尝试使用前置摄像头,我就会收到错误消息。 这发生在以下设备上: Nexus S 4.1.2 Galaxy Nexus 4.1.2 Nexus 7 4.2.1(它只有前置摄像头) 我已经尝试过看起来像2.2时代的Camera Params,有些人声称需要一些三星和HTC设备,尽管有多篇不同的文章引用了不同的字符串键: c = Camera.open(frontFacingCameraID); // attempt to get a Camera instance Camera.Parameters params = c.getParameters(); params.set(“cam-mode”, 1); params.set(“cam_mode”, 1); params.set(“camera-id”, 1); c.setParameters(params); 这些都不起作用,请注意我正在检测Nexus 7上正确的前置摄像头ID:0。但是所有设备的结果都是一样的。 我尝试使用低质量的配置文件,我尝试过多种方式手动设置video分辨率,编码器,输出格式,比特率,帧速率和video大小,但没有一个有效。 让我觉得大多数代码没有错的事情是普通相机工作正常。 所以我的猜测是它与设置媒体记录器的prepareVideoRecorder()/ prepareMediaRecorder()方法有关。 也许Media Recorder手动编码已知可在前置摄像头上工作的设置? 我不得不说,Android Camera和MediaRecorder API很糟糕。 与iOS相比,它有点混乱,更不用说一些可怕的外观参数不兼容性问题和分散的设备环境中的不同分辨率。 假设我可以在我的JB设备上运行,有没有人从经验中知道这些问题是否已通过API 15 […]