Camera无法回调picturecallback函数

Android 码拜 10年前 (2015-04-26) 2102次浏览 0个评论
 

package com.test;   
  
import android.app.Activity;   
import android.hardware.Camera;   
import android.hardware.Camera.PictureCallback;   
import android.os.Bundle;   

public class BootTestActivity extends Activity {    
  
    private Camera mCam;     

    protected void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.main);   
        
                try
                {
                    mCam  = Camera.open();
                    if (mCam != null)
                    {   
                        System.out.println(“开始拍照了吗?”);
                       mCam.takePicture(null, null, pictureCallBack);   
                       System.out.println(“拍照结束了吗?”);
                    }       
                }

                catch(Exception e)
                {
                    System.out.println(e);
                }
                finally
                {
                     if (mCam != null) 
                     {
                         mCam .release();
                         System.out.println(“release”);
                     }
                }                
    }   
    
  
    private PictureCallback pictureCallBack = new Camera.PictureCallback() {

        public void onPictureTaken(byte[] data, Camera camera) {
        
            System.out.println(“可是我并没有被调用呀!”);
              
                }   
    };         
}  

权限:
     <!– 授予程序使用摄像头的权限 –>
<uses-feature android:name=”android.hardware.camera” />  
<uses-feature android:name=”android.hardware.camera.autofocus” />  
<uses-permission android:name=”android.permission.CAMERA” />  

为什么呢?在魅族MX2上就没用,但是在三星9300就行

Camera无法回调picturecallback函数
takepicture前先调用camera.startPreview试试
Camera无法回调picturecallback函数
引用 1 楼 guoyoulei520 的回复:

takepicture前先调用camera.startPreview试试

初始化相机的时候已经startPreview()了,还要在开始拍照时再次start?

Camera无法回调picturecallback函数
引用 1 楼 guoyoulei520 的回复:

takepicture前先调用camera.startPreview试试

加了也没有回调函数,不懂为什么了

Camera无法回调picturecallback函数
15分
试试 四参数的 takepicture  public final void takePicture (Camera.ShutterCallback shutter, Camera.PictureCallback raw, Camera.PictureCallback postview, Camera.PictureCallback jpeg)
Camera无法回调picturecallback函数
引用 4 楼 shen332401890 的回复:

试试 四参数的 takepicture  public final void takePicture (Camera.ShutterCallback shutter, Camera.PictureCallback raw, Camera.PictureCallback postview, Camera.PictureCallback jpeg)

四个参数的takepicture()也不行还是这个错误,
04-02 09:05:44.745: E/Camera(6923): Error -38
04-02 09:06:31.455: E/Trace(7033): error opening trace file: No such file or directory (2)

Camera无法回调picturecallback函数
10分
open和takepicture最好不要放在onCreate中,建议使用线程来open,待open成功之后再向activity发消息执行takepicture方法

另外,open完后最好执行startpreview

Camera无法回调picturecallback函数
你没有 startPreview  
不预览 是不可以 拍照的
Camera无法回调picturecallback函数
引用 7 楼 shen332401890 的回复:

你没有 startPreview  
不预览 是不可以 拍照的

预览,拍照那一下声音和拍照动画都有,就是不回调
预览已经在创建时初始化了,这里没有贴代码

Camera无法回调picturecallback函数
引用 6 楼 monodin 的回复:

open和takepicture最好不要放在onCreate中,建议使用线程来open,待open成功之后再向activity发消息执行takepicture方法

另外,open完后最好执行startpreview

我试试,但是之前试过另外的方法,也是说为了防止各步骤执行顺序不正确,但还是不行,我试试你说的吧

Camera无法回调picturecallback函数
关于拍照,有前置拍照和后置拍照,如果是前置拍照,你如果是用的2.2的SDK,测试手机是2.3就不会回调,2.2的前置拍照,不同的手机,其中传入的参数也不同,想要兼容用反射是可以的
Camera无法回调picturecallback函数
引用 10 楼 comeoverjava 的回复:

关于拍照,有前置拍照和后置拍照,如果是前置拍照,你如果是用的2.2的SDK,测试手机是2.3就不会回调,2.2的前置拍照,不同的手机,其中传入的参数也不同,想要兼容用反射是可以的

是基于4.0.3的SDK,在4.1.1的机子上运行的问题,调用后置摄像头,主要是魅族手机上就是不回调,在三星上是没问题的,所以想问下有谁遇到过相似的问题

Camera无法回调picturecallback函数
15分
引用 11 楼 zmhzhangminhua 的回复:

引用 10 楼 comeoverjava 的回复:
关于拍照,有前置拍照和后置拍照,如果是前置拍照,你如果是用的2.2的SDK,测试手机是2.3就不会回调,2.2的前置拍照,不同的手机,其中传入的参数也不同,想要兼容用反射是可以的

是基于4.0.3的SDK,在4.1.1的机子上运行的问题,调用后置摄像头,主要是魅族手机上就是不回调,在三星上是没问题的,所以想问下有谁遇到过相似的问题

确实没遇到过这个问题,之前在做Camera项目时魅族手机上回调正常,只是摄像头方向有些问题

Camera无法回调picturecallback函数
mCam  = Camera.open();
之后,接着就
mCam.takePicture(null, null, pictureCallBack);
根本没有开始预览的代码,感觉 open 已经报错了。
Camera无法回调picturecallback函数
引用 12 楼 monodin 的回复:

引用 11 楼 zmhzhangminhua 的回复:引用 10 楼 comeoverjava 的回复:
关于拍照,有前置拍照和后置拍照,如果是前置拍照,你如果是用的2.2的SDK,测试手机是2.3就不会回调,2.2的前置拍照,不同的手机,其中传入的参数也不同,想要兼容用反射是可以的

是基于4.0.3的SDK,在4.1.1的机子上运行的问题,调用后置摄像头,主要是……

方向问题的话,魅族开发者支持那里有解决方法

Camera无法回调picturecallback函数
引用 13 楼 tcmakebest 的回复:

mCam  = Camera.open();
之后,接着就
mCam.takePicture(null, null, pictureCallBack);
根本没有开始预览的代码,感觉 open 已经报错了。

有些代码没贴而已,现在莫名其妙正常了

Camera无法回调picturecallback函数
我的原因是,为了使预览图不变形,将PictureSize与PreviewSize的值设置为相同相同的值,但是设置的PictureSize是不被支持的Size,因此造成了拍照后不调用此回调方法的bug。详解请看:http://blog.csdn.net/wangfayinn/article/details/9319161
Camera无法回调picturecallback函数
在华为手机上遇到了同样的问题,拍照没有回调,之前在小米的手机上调试一直是正常

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Camera无法回调picturecallback函数
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!