`
Darar
  • 浏览: 85732 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

无声拍照

 
阅读更多
在Android系统中,通过代码控制拍照都会有咔嚓一声,并且这个声音没法通过设置去除或改变,系统没有让拍照无声的接口。

这是由于手机拍照有声音是国际标准,就是为了防止偷pai,正规的Android发布厂商都会有。

换一种思路,相机除了拍照还有录像和预览的功能,拍照和录像都是无可避免有声音的,而通过相机预览是没有声音的。

所以需要研究一下预览模式下,能不能获取当前的图像。通过研究Camera类,发现真的有一个Camera.PreviewCallback的子类。

通过Camera.setPreviewCallback(previewCallback)方法,在相机预览的过程中,

每一帧都会回调到 onPreviewFrame(byte[] data, Camera paramCamera)中,代码如下:
private PreviewCallback previewCallback = new PreviewCallback(){
@Override
public void onPreviewFrame(byte[] data, Camera paramCamera){
    
    Log.i(TAG, "onPreviewFrame");

    try {
    YuvImage yuvimage = new YuvImage(
    data,
    ImageFormat.NV21,
    paramCamera.getParameters().getPreviewSize().width,
    paramCamera.getParameters().getPreviewSize().height,
    null);

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    yuvimage.compressToJpeg(
    new Rect(0,0,paramCamera.getParameters().getPreviewSize().width,
    paramCamera.getParameters().getPreviewSize().height), 80, baos);

    FileOutputStream outStream = new FileOutputStream(String.format("/sdcard/%d.jpg", 11111));
    outStream.write(baos.toByteArray());
    outStream.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
    }
    camera.stopPreview();
    camera.setPreviewCallback(null);    
}
};


当然,每一帧回调,都会有帧数据,这些帧数据就需要自己来编码并存储了。

data字节流默认是YCbCr_420_SP,2.2之前的并没有把这种数据转化的方法,

SDK2.2之后,提供了一个YuvImage的类来转成图片。

这样,在需要拍照的时候,取一帧数据就可以了,并没有真正的调用拍照的API,就实现了无声拍照。
分享到:
评论

相关推荐

    S5830 无声照相 升级包

    S5830 无声照相 升级包

    c5拍照无声补丁

    诺基亚的拍照无声软件,欢迎大家试用!下载记得加分

    5230/5233/5800照相无声补丁

    所以发一个照相无声补丁,供广大水货机油下载。我的5230是欧水,已经亲测过,没有问题,不过补丁需要签名,但是不必XX手机,安完之后,将情景模式中的警告音关闭,重启手机即可。如果想恢复照相声,直接打开警告声就...

    无声拍照 自定义拍照 带前后摄像头切换

    结合网上的拍照源码,合并到自己的项目中,并总结出来的自定义拍照的源码,原先是基于2.1的开发,但由于有切换前后摄像头,所以用了4.0来编译,但只要在2.3的版本下就可以正常运行了

    无声静音拍照

    好了,不要999,不要99,更不要0.9,完全免费的无声静音拍照,帮你搞定,快拿去吧! 1.无声单拍:无声单拍的照片会保存在手机本身的内存中,未导出之前只有本软件的相册功能可以查看。(可以导出到内存卡)。 2.无声...

    诺基亚c7拍照无声补丁

    国行诺基亚C7补丁,需自签后才可使用。安装后在程序管理中可以找到,随时可以删除或再安装。

    拍照无声补丁.sis

    只在诺基亚N5230上实验过,其他还没使用,就是照相的时候没有声音的

    i900拍照无声教程

    i900拍照无声教程 拨号面板输入: *#0002*28346# 1) notincall, 下面choose "notincall_headset_camera" 2) common part 3)speaker volume 4) spk left 该数值可以改变开门声大小, ( 0 -46.5),0最大,-46.5为最小...

    诺基亚C500拍照无声补丁及签名专家

    诺基亚C500拍照无声补丁及签名专家 签名的意思就是: 将证书文件"写入"到未签名软件中,这样未签名软件就变成了签名过的软件了,只有签名过的软件才能被安装到手机上. 签名方法: 先将手机的日期调整到当前正确的日期,...

    android隐藏拍照无卡顿操作

    实现隐藏无声拍照,并且在拍照期间不会卡顿,让使用者不知不觉的拍下来。

    N97 S60v5手机诺基亚关警告音关闭照相机快门声音的文件补丁亲测可用

    关闭照相机快门声音 诺基亚关警告音关闭照相机快门声音的文件补丁亲测可用

    i900拍照无声补丁

    i900拍照无声补丁 下载后覆盖windows下原来的文件 用快门声音二无声 另外 一 三 正常声音

    s60v3拍照无声--未签名版

    都明白的,已去除签名,已破解的可直接安装

    I9220相机快门无声apk

    拍照无声法:进入SYSTEM/MEDIA/AUDIO/UI找到一个shutter-01.ogg的声音文件将其改为shutter-01.ogg.bak即可,也可以直接删了shutter-01.ogg 要不需要静音去掉BAK后缀就可以改回来了 拍照对焦也无声法:下载此文件...

    S60v3无声补丁_签名版

    S60v3无声补丁_签名版,已经签名,欢迎大家下载使用

    poco相机 android V1.0.4

    “POCO相机”是针对手机拍照用户群推出的多镜头拍照、美化处理、一键多平台分享的超级手机拍照工具。 ● iPhone版上线一周内,相继荣登大陆/港澳台/新马泰等华语国家及地区free...7、设置里新增了“无声拍照”的选项。

    一个简单的照相机案例

    一个简单的照相机案例源码,下面给大家一个照相机源码,没有解决无声拍照的问题,貌似这个是国际规定防止偷拍,我看了解决的方法,要下载system源码目录的来修改里面的东西,现在还没实现,后续继续跟新,希望也有实现...

    poco美人相机 android v1.3.1

    华语地区最强劲的手机自拍美容神器!5000万美女的首选!荣登过七国/地区苹果店免费下载总榜第一名! 全新智能识别技术,让美女们瞬间遇见最完美的自己!...√ 修复了无声拍照功能 √ 优化了智能彩妆的体验

    poco美人相机 android v1.3.2

    华语地区最强劲的手机自拍美容神器!5000万美女的首选!荣登过七国/地区苹果店免费下载总榜第一名!...√ 修复了无声拍照功能 √ 优化了智能彩妆的体验 (1-16日更新修正版v1.3.2) √ 优化了照片上传速度

Global site tag (gtag.js) - Google Analytics