Articles of android camera

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 […]

Camera.open()返回null

当我调用mCamera = Camera.open()它返回null,可能是什么导致了这个? 我的设备是Nexus 7。 我已经在AndroidManifest.xml设置了权限:

如何使用WebRTC Native Code for Android实现三方电话会议video聊天?

我正在尝试使用适用于Android的WebRTC本机代码包 (即不使用WebView)在Android应用内部实现3路video聊天。 我使用node.js编写了一个信令服务器,并使用客户端应用程序内的Gottox socket.io java客户端库连接到服务器,交换SDP数据包并建立双向video聊天连接。 但是现在我遇到的问题不仅仅是三方通话。 WebRTC本机代码包附带的AppRTCDemo应用程序仅演示双向呼叫(如果第三方尝试加入房间,则返回“房间已满”消息)。 根据这个答案 (与Android没有特别关系),我应该通过创建多个PeerConnections来实现,因此每个聊天参与者将连接到其他2个参与者。 但是,当我创建多个PeerConnectionClient(一个包装PeerConection的Java类,它在libjingle_peerconnection_so.so中的本机端实现)时,会从库内部抛出一个exception,因为它们都试图与访问相机: E/VideoCapturerAndroid(21170): startCapture failed E/VideoCapturerAndroid(21170): java.lang.RuntimeException: Fail to connect to camera service E/VideoCapturerAndroid(21170): at android.hardware.Camera.native_setup(Native Method) E/VideoCapturerAndroid(21170): at android.hardware.Camera.(Camera.java:548) E/VideoCapturerAndroid(21170): at android.hardware.Camera.open(Camera.java:389) E/VideoCapturerAndroid(21170): at org.webrtc.VideoCapturerAndroid.startCaptureOnCameraThread(VideoCapturerAndroid.java:528) E/VideoCapturerAndroid(21170): at org.webrtc.VideoCapturerAndroid.access$11(VideoCapturerAndroid.java:520) E/VideoCapturerAndroid(21170): at org.webrtc.VideoCapturerAndroid$6.run(VideoCapturerAndroid.java:514) E/VideoCapturerAndroid(21170): at android.os.Handler.handleCallback(Handler.java:733) E/VideoCapturerAndroid(21170): at android.os.Handler.dispatchMessage(Handler.java:95) E/VideoCapturerAndroid(21170): at android.os.Looper.loop(Looper.java:136) E/VideoCapturerAndroid(21170): at org.webrtc.VideoCapturerAndroid$CameraThread.run(VideoCapturerAndroid.java:484) 在尝试建立连接之前初始化本地客户端时会发生这种情况,因此它与node.js,socket.io或任何信令服务器内容无关。 如何让多个PeerConnections共享摄像头,以便我可以将同一video发送给多个同行? 我的一个想法是实现某种单独的相机类来取代可以在多个连接之间共享的VideoCapturerAndroid,但我甚至不确定它是否会起作用,我想知道是否有办法做3-在我开始在库内进行黑客攻击之前使用API​​进行调用。 […]

将位图数组转换为YUV(YCbCr NV21)

如何将BitmapFactory.decodeFile()返回的Bitmap转换为YUV格式(simillar到相机的onPreviewFrame()返回字节数组)?

同时使用前后摄像头android

我知道这个问题之前已被问过很多次了。 我曾在一年多前找过它,但没有find任何东西,所以如果有任何新的想法/方法或黑客,再次发布这个问题。 我希望能够从Android设备中的两个摄像头(正面和背面)捕获video。 我现在唯一想到的是每隔0.1秒如何在正面和背面之间切换,但是我从来没有能够对此进行编码。 请给我任何人的帮助。 另一个想法是 – video通常以每秒15或30帧的速度捕获。 假设它是每秒30帧。 如果有一种方法可以将这些帧交替到正面和背面,那么我们可以拥有每秒15帧的前置和每秒15帧的后置video。 这可能吗? 如果是,那怎么样? 请建议。 音频会发生什么? 也许我们可以将音频限制为只有一个video录制(正面或背面)。