Articles of android camera

Cordova Android Camera-提供非法参数exception

我在2个月前开始使用cordova Android编程。 一切都很好,主要是现在没有工作的相机。 但上周一些我的项目目录如何删除,我重新安装所有插件的cordova和编译项目,但现在它显示错误’非法参数exception’在相机上点击令人惊讶的事情是我没有更改单行代码,它也正常工作在其他开发者机器上。 cordova插件添加了使用相机插件安装的cordova-plugin-camera命令。 camera_app.js文件 var pictureSource; // picture source var destinationType; // sets the format of returned value // Wait for device API libraries to load // document.addEventListener(“deviceready”, onDeviceReady, false); // device APIs are available // function onDeviceReady() { pictureSource = navigator.camera.PictureSourceType; destinationType = navigator.camera.DestinationType; } // Called when a photo is successfully […]

相机:setDisplayOrientationfunction不适用于Android 2.3.6的三星Galaxy ACE

我试图创建一个简单的相机应用程序进行研究。 我阅读Android Camera Official Document然后开始编码。 所以我做了一些步骤让它发挥作用 1.在应用中添加了相机function所需的权限。 2.我的活动仅限于PORTRAIT模式。 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 3.增加了几个相机回调以使我的相机工作。 SurfaceHolder.Callback, Camera.PreviewCallback AutoFocusCallback ShutterCallback PictureCallback用于RAW图像数据 PictureCallback用于JPG图像数据 4.In surfaceChanged方法我正在自定义相机设置。 到目前为止,我已经为几乎所有Android设备工作了 LG 香料 三星 HTC 福邦 索尼 摩托罗拉 谷歌Nexus系列。 但随后我在Android版2.3.6的三星Galaxy ACE上进行了测试,发现Camera Display Preview已转为横向模式。 因此,在记录了log-cat / break points后,我发现下面的方法对于这个特定的模型不起作用 //This method is not working for Samsung Galaxy ACE camera.setDisplayOrientation(90); //or parameters.set(“orientation”, “portrait”); //or parameters.setRotation(90); 注意: 我在Google和SO上搜索了大量解决方案,但到目前为止还没有任何运气 Issus 在这里报道 android摄像头surfaceview方向 […]

访问被拒绝查找属性“camera.hal1.packagelist”

在服务中使用相机时,移动屏幕变得不可触摸(由透明窗口锁定)并且仅在出现错误之下 Access denied finding property “camera.hal1.packagelist” 将是什么原因及其解决方案? 请帮忙..

使用Cache Uri作为MediaStore.EXTRA_OUTPUT时,相机无法正常工作/保存

我试图从Fragment拍摄照片后获得完整的图像。 如果我使用文件中的Uri( Uri.fromFile(file) ),相机将在拍摄照片并点击“确定”按钮后退出(看起来无法写入Uri或谁知道什么) 。 使用’/data/data/com.package.bla/cache/img198346262jpg’forms的File String ,它不能正常工作(文件在那里,但它是空的,因为相机没有保存任何内容) 。 到目前为止我尝试了什么: 创建文件后删除文件,如本例所示 。 但是,相机退出后文件不存在。 添加外部存储READ权限,以防万一 所以我不知道为什么图像没有被保存并且已经花费/浪费了大量时间测试并弄清楚它为什么不起作用。 分段: private void launchCamera() { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); File outputDir = getActivity().getCacheDir(); File file = null; try { file = File.createTempFile(“img”, “jpg”, outputDir); } catch (IOException e) { e.printStackTrace(); } if (file != null) { mImageUri = Uri.fromFile(file); […]

颠倒相机预览字节数组

我有一个锁定到风景的相机应用程序。 在需要时,我旋转onPreviewFrame()上onPreviewFrame()的原始字节,并使用它们对video进行编码。 然而,这种方法在Nexus 5X和6设备中失败,因为它们的反向传感器让我倒置了帧。 在这种情况下旋转预览对我没有帮助,如下所述: 这不会影响在onPreviewFrame(byte [],Camera)中传递的字节数组的顺序 我想知道是否有任何方法可以检测到相机传感器被反转和/或原始帧是颠倒的,因此在旋转时会增加额外的校正。

使SurfaceView大于屏幕(将相机预览适合大于显示器的SurfaceView)

我有一个自定义相机应用程序,我想要任何预览尺寸以全屏模式显示它而不拉伸相机预览图像。 为此,我需要使surfaceView比屏幕大,以保持纵横比,因此实际上用户将看到比实际捕获的相机少。 出于某种原因,我无法使SurfaceView大于屏幕尺寸。 到目前为止我尝试了什么: 调整surfaceChanged方法中的相机预览 在onMeasure方法上调整相机预览的大小 在onLayout 方法中resize 将FLAG_LAYOUT_NO_LIMITS添加到活动 – 信息 为表面视图添加android: clipChildren – info 在xml中设置宽度: android:layout_width=”852px” getWindow().setLayout(852, 1280); 在活动中 但是没有任何成功 – 每次的行为都是一样的:它看起来没有1秒钟,之后它会被拉长。 这是代码: public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { private static final int CAMERA_ROTATE_ANGLE = 90; private SurfaceHolder cameraHolder; private Camera androidHardCamera; private Context context; public CameraPreview(Context context) { super(context); this.context = […]

什么是相同的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); 然后我成功收到广播,可以看到日志和吐司窗口​​。 […]