Articles of 相机

android:拍照相机没有“保存”/“删除”确认

我想在ImageView中使用显示从相机拍摄的图像 Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 到目前为止,此工作正常,但在用户使用所选的相机应用程序拍摄照片后,会出现一个对话框(可能来自应用程序),询问是否保存或删除拍摄的照片(至少在Android 2.3和4.2上使用默认的相机应用程序)。 我想跳过这个额外的对话框并直接在ImageView中显示图像(当调用onActivityResult时),因为这意味着用户需要额外的交互步骤,这是不必要的,因为他将有可能保存或删除照片。我的应用。 这可能是使用简单的ACTION_IMAGE_CAPTURE Intent还是我需要像Camera Preview和SurfaceView这样的更复杂的东西?

如何设置MediaRecorder以获得最佳video质量效果?

伙计们有人可以告诉我如何在MediaRecorder中设置参数,以便通过编码获得最佳video录制效果而不考虑手机的物理限制? 或者我的MediaRecorder编码造成的视图小失真是否有任何影响? 如果你们中的一些人可能猜测不清楚的参数,我实际上是使用偏好设置一些参数。 我想念的参数有哪些可能有助于改善video编码过程Ex:framerate

Android:纵向模式下的相机预览方向

我正在使用相机仅显示预览(不拍照或录制video)。 应用程序始终处于纵向模式(禁用横向模式)。 相机预览始终旋转90度ccw并且我无法更改它(既不使用setDisplayOrientation也不使用p.set(“orientation”, “portrait” )和p.set(“rotation”, 90) ) 。 预览总是像这样旋转还是依赖于设备? 如果在纵向模式下总是如此,我可以随后旋转图像。 或者有没有办法正确设置相机? 我已经阅读了很多有关此问题的post,但没有答案对我有用(Galaxy s2,Android v2.3)

使用camera2 API无需预览即可捕获图片

我想要实现的是捕获图片而不显示预览,直接将输出发送到ImageReader 。 我使用Camera2Basic示例作为起点。 但是,我的ImageReader的回调永远不会被调用,因此没有图像被发送到它的Surface 。 我真的需要先显示预览吗? 这是摄像机代码,它按照异步回调的流程排序: private ImageReader imageReader; private Handler backgroundHandler; private HandlerThread backgroundThread; private String cameraId; private CameraDevice cameraDevice; private CameraCaptureSession cameraCaptureSession; @Override public void onCreate() { setupCamera2(); } private void setupCamera2() { CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); try { for (String cameraId : manager.getCameraIdList()) { CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId); if (characteristics.get(CameraCharacteristics.LENS_FACING) […]

Camera API:跨设备问题

我正在开发一个相机应用程序,基本上作为消息应用程序的一部分来附加图像等。该应用程序需要工作> = SDK 2.2和: 我不能像我喜欢的那样使用默认的Android相机,因为: 该应用程序的性质决定了图像不应该保存到磁盘,一些OEM(三星)喜欢这样做而不给你一个选择。 我无法调用任何其他相机应用程序可以拦截的意图,因为那时该应用程序可以保存图像。 我目前的问题是处理Android相机显然不喜欢纵向的事实。 具体来说,在进行一些挖掘后,我正在监视显示,并在旋转时调用setDisplayOrientation(90) 。 这可以工作,但Surfaceview维度也需要更改,这必须在支持的维度内完成,否则参数设置会使应用程序崩溃。 我正在使用我在这里find的另一个SO片段( getBestPreviewSize()方法)这样做,但它有一个明显的问题,我无法相信我没有find其他人。 takePicture生命周期的一部分涉及调用PostView图片回调。 这是显示当前暂停的SurfaceView图像的静止图像,它将通过byteArray返回到原始和/或jpeg回调。 我的问题是,这个图像在一些看似随机的测试设备上仍然存在偏差! 因此,行为是用户以完美的4:3宽高比看到动态相机图像,直到他们拍摄照片并且他们呈现的图像被压扁。 请注意,字节数组本身是正确的,当我在消息传递端点构造Bitmap时,它显示正常,但这仍然是一个问题。 此时我无法看到如何改变静止图像显示。 谁能帮我这个?

android – 创建虚拟摄像头还是覆盖真正的凸轮流? (/ dev / msm_camera / frame0,v4l2loopback)?

我目前正在开展一个关于图像和video传输延迟的项目。 我是否有能力(假设为root)创建虚拟摄像机或用相同的图片或原始video流覆盖真实的凸轮帧缓冲区? 我想在skype中使用这个凸轮。 我通过类似v4l2loopback来操作图片…我测试了类似的东西,但这不起作用…… ln -s /sdcard/image.jpg /dev/msm_camera/msm_camera0 dd if=/dev/graphics/fb0 of=/dev/msm_camera/frame0 cat /dev/graphics/fb0 > /dev/msm_camera/frame0 这可能吗? 我正在使用带有ICS的HTC Desire HD 提前致谢

在android 6.0.1中,检索相机照片不起作用

1-一些同事(使用android工作室的Android开发人员)在我的手机上测试他的应用程序时遇到了问题(这是与android 6.0.1的关系),他面临的问题是当他拿一个来自画廊的图像可以和他合作,但是当从相机拍摄照片时它没有显示,他怀疑他保存在手机上的图像没有得到保存,他怀疑这是一个许可问题,对他来说它有效在星系上而不是在nexus上。 2-同样的事情发生在我的团结中我买了一个以前在我的手机上工作正常的插件(当我拿相机照片时),现在我更新后它不再拍摄图片了,我的意思是我走了相机并返回应用程序,而不像以前那样加载到视图中。 这是logcat显示的内容 ——— beginning of main 02-07 16:36:10.272 203-813/? D/audio_hw_primary﹕ out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2 02-07 16:36:10.282 203-813/? D/audio_hw_primary﹕ select_devices: out_snd_device(2: speaker) in_snd_device(0: none) 02-07 16:36:10.282 203-813/? D/msm8974_platform﹕ platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15) 02-07 16:36:10.282 203-813/? D/audio_hw_primary﹕ enable_snd_device: snd_device(2: speaker) 02-07 16:36:10.284 203-813/? D/audio_hw_primary﹕ enable_audio_route: apply and update mixer path: […]

如何限制插件在android / cordova中切换后/后相机

我正在使用cordova媒体捕获插件来捕获仅来自前置摄像头的video。 当它打开相机时,可以选择切换后置或后置摄像头,任何人都可以引导,如何禁用切换到后置摄像头。 我在插件中做了以下修改并重新添加到应用程序,但没有运气。 intent.putExtra(“android.intent.extras.LENS_FACING_BACK”, 0); intent.putExtra(“android.intent.extra.USE_BACK_CAMERA”, false);

Android使用渲染脚本将ImageReader Image转换为YCbCr_420_SP(NV21)字节数组?

我目前正在使用Javacv ,它利用public void onPreviewFrame(byte[] data, Camera camera)相机function。 由于相机已被弃用,我一直在研究camera2和MediaProjection 。 这两个库都使用ImageReader类 。 目前,我使用以下代码实例化这样的ImageReader : ImageReader.newInstance(DISPLAY_WIDTH, DISPLAY_HEIGHT, PixelFormat.RGBA_8888, 2); 并附加一个OnImageAvailableListener如下所示: private final ImageReader.OnImageAvailableListener mOnImageAvailableListener = new ImageReader.OnImageAvailableListener() { @Override public void onImageAvailable(ImageReader reader) { mBackgroundHandler.post(new processImage(reader.acquireNextImage())); } 我尝试使用RGBA_8888格式与Javacv按照这个线程: https : //github.com/bytedeco/javacv/issues/298但这对我不起作用。 所以相反,我正在考虑使用渲染脚本将这些Image转换为NV21(YUV_420_SP)格式(这是onPreviewFrame函数中相机的默认输出),因为这对我的camera库起作用。 我还阅读了这个和本网站的post进行转换,但这些对我来说不起作用,我担心它们会太慢。 此外,我对C的了解非常有限。 基本上看起来我想要https://developer.android.com/reference/android/renderscript/ScriptIntrinsicYuvToRGB.html的反向操作 那么如何从一个Image到一个与onPreviewFrame函数输出相匹配的字节数组,即NV21(YUV_420_SP)格式? 最好使用Renderscript,因为它更快。 编辑1: 我尝试过使用ImageFormat.YUV_420_888但无济于事。 我一直得到错误The producer output buffer format 0x1 doesn’t match […]

Android:如何使用回调显示相机预览?

首先 – 我已经研究了一段时间并尝试了几种解决方案,所以不要向我发送你在谷歌上find的第一个链接。 我需要做的很简单,我想使用相机回调手动显示来自相机的预览,我想在真实设备上获得至少15fps。 我甚至不需要颜色,我只需要预览灰度图像。 来自相机的图像采用YUV格式,您必须以某种方式处理它,这是主要的性能问题。 我正在使用API​​ 8。 在所有情况下,我都使用camera.setPreviewCallbackWithBuffer(),这比camera.setPreviewCallback()快。 如果我没有显示预览,我似乎无法在这里获得大约24 fps。 所以没有问题。 我试过这些解决方案: 1.在SurfaceView上将相机预览显示为位图。 它有效,但性能约为6fps。 baos = new ByteOutputStream(); yuvimage=new YuvImage(cameraFrame, ImageFormat.NV21, prevX, prevY, null); yuvimage.compressToJpeg(new Rect(0, 0, prevX, prevY), 80, baos); jdata = baos.toByteArray(); bmp = BitmapFactory.decodeByteArray(jdata, 0, jdata.length); // Convert to Bitmap, this is the main issue, it takes a lot of time […]