从使用中的相机拍照

2024-02-01

如何从正在使用的前置摄像头拍照而不在屏幕上显示摄像头。 我有服务舱

public class PhotoTakingService extends Service {
    //Camera variables
    //a surface holder
    private SurfaceHolder sHolder;
    //a variable to control the camera
    private Camera mCamera;
    //the camera parameters
    private Parameters parameters;

    boolean mPreviewRunning = false;


    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate() {
        super.onCreate();

    }

    @Override
    public void onStart(Intent intent,int startId) {
        // TODO Auto-generated method stub
        super.onStart(intent,startId);



        mCamera = Camera.open();
        SurfaceView sv = new SurfaceView(getBaseContext());


        try {

            Camera.Parameters p = mCamera.getParameters();
            mCamera.setParameters(p);
            mCamera.startPreview();

            mCamera.takePicture(null,null,mPictureCallback);

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        //Get a surface
        sHolder = sv.getHolder();
        //tells Android that this surface will have its data constantly replaced
        sHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }


    Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
        public void onPictureTaken(byte[] imageData,Camera c) {
            Log.e("Callback TAG","Here in jpeg Callback");

            if (imageData != null) {
                FileOutputStream outputStream = null;
                try {
                    outputStream = new FileOutputStream("/sdcard/car_final/Image.jpg");
                    outputStream.write(imageData);

                    // Removed the finish call you had here
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (outputStream != null) try {
                        outputStream.close();
                    } catch (IOException ex) {
                        // TODO Auto-generated catch block
                        ex.printStackTrace();
                    }
                }

            }
        }
    };

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
}

和主要活动。我想从主要活动中打电话。

 public class MainActivity extends Activity implements SurfaceHolder.Callback {



 private static final String TAG = MainActivity.class.getSimpleName();

    public static SurfaceView mSurfaceView;
    public static SurfaceHolder mSurfaceHolder;
    public static Camera mCamera;
    public static boolean mPreviewRunning;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mSurfaceView = (SurfaceView) findViewById(R.id.surfaceView);
        mSurfaceHolder = mSurfaceView.getHolder();
        mSurfaceHolder.addCallback(this);
        mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

        Button btnStart = (Button) findViewById(R.id.button1);
        btnStart.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                Intent intent = new Intent(MainActivity.this, PhotoTakingService.class);
                //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startService(intent);

            }
        });

      /*  Button btnStop = (Button) findViewById(R.id.StopService);
        btnStop.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                stopService(new Intent(CameraRecorder.this, RecorderService.class));
            }
        });*/
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {

    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
    }
}

当您处于后台线程(例如服务使用)时SurfaceTexture代替SurfaceHolder。如果您正在寻找实施方案这是一个开源应用程序 https://github.com/s4kibs4mi/ISeeU我在这里实现了背景视频流和 UI 视频流。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从使用中的相机拍照 的相关文章

  • Android 覆盖在软件按钮之上

    我正在尝试编写一个绘制自定义鼠标指针的应用程序 我目前有一个服务 它创建一个扩展 ViewGroup 的类 并使用 WindowManager 系统服务将其显示为带有 FLAG LAYOUT IN SCREEN 设置的 TYPE SYSTE
  • 定期运行任务(每天一次/每周一次)

    我想定期 每周 每天一次 运行一些任务 即获取我的网站新闻页面 即使我的应用程序已关闭 是否可以 是的 您需要查看报警管理器 http developer android com reference android app AlarmMan
  • 显示警报或收到通知时的视图

    我正在关注this http tokudu com 2010 how to implement push notifications for android 显示的教程通知 on an 安卓设备 当我在设备上运行该应用程序时 状态栏上会出现
  • 如何在出现“无法解析放置符号”错误时向哈希图添加键和值

    我正在与安卓工作室 https en wikipedia org wiki Android Studio1 4 1 我刚刚创建了一个 Hashmap 并正在遵循有关如何填充和操作它的教程 Java 语言 但是 我收到 无法解析符号放置 错误
  • 使用 Google Places Autocomplete API 的 REQUEST_DENIED 响应

    我正在开发 Android 应用程序 它使用谷歌的地点自动完成 API 当尝试点击以下网址时 我得到的答复如下 预测 状态 REQUEST DENIED 我从下面的链接获得了 API 密钥Google API 控制台 http code g
  • 如何使用 adb 在设备上安装现有的 Android 应用程序?

    在开发过程中 我使用类似的东西 adb s 192 168 1 77 5555 uninstall com myApp app adb s 192 168 1 77 5555 install path to android debug ap
  • 连接到不可发现的蓝牙设备

    我正在开发一个安卓应用程序 只是一个一般性问题 是否可以连接到公开不可发现的设备 提前致谢 如果您之前已与该设备配对 则即使该设备未处于可发现模式 也可以再次连接到该设备 参见这篇文章 以编程方式连接到配对的蓝牙设备 https stack
  • React Native Android 发布 apk 是调试,而不是发布

    我有一个现有的 Android 应用程序 我已根据以下内容将 React Native v0 30 活动添加到项目中docs http facebook github io react native releases next docs i
  • 在 WebView 中完成 AdBlock

    我即将在我的 Android 应用程序中推出 WebView AdBlocking 我想知道这是否会有效地阻止广告 或者在 Webview 本身内是否还有更多工作要做 我尚未修改 基本上我有一个存储在 Android 资产中的主机文件 其中
  • 如何在 Android 上创建 YouTube 的双击手势?

    我在 Android 上有 exoplayer 的应用程序 我已经创建了 youtube双击手势用动画向前或向后跳跃 10 秒 如何在双击时创建具有波纹效果的半圆 像这样 这个怎么做 我也想实现这样的功能 所以我自己编写了它来 复制 You
  • 从多个选项卡中的编辑文本字段获取文本

    我正在尝试创建一个使用选项卡作为输入表单的 Android 应用程序 基本上 我希望对其进行设置 以便用户可以在一个选项卡上输入一些信息 然后提交该信息 或者转到另一个选项卡并输入更多信息 然后从两个选项卡提交信息 我正在使用操作栏和片段来
  • Android ListView setSelection() 似乎不起作用

    我有一个ListActivity实现onListItemClick 并调用doSomething 类的功能 后者包含l setSelection position where l is the ListView object 现在有一个on
  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht
  • Android模拟器分配内存失败8

    当我尝试从 Eclipse 运行 WXGA800 模拟器时 出现如下错误 Failed to allocate memory 8 This application has requested the Runtime to terminate
  • jar 中的 apklib 有什么优点?

    我正在关注这个问题 https stackoverflow com questions 6059502 whats the difference between apklib and jar files但它并没有完全回答我的问题 jar 中
  • ACCESS_BACKGROUND_LOCATION 不适用于低于 Q (29) 的 Android 版本

    我的应用程序面向 Android API 28 根据文档 https developer android com preview privacy location target android 10 我应该要求ACCESS BACKGROU
  • 删除Android所有语言中的字符串

    我有一个包含多个翻译的应用程序 我想删除一些字符串 我怎样才能重构并删除它们一次 例如在默认情况下strings xml文件并自动将删除传播到其他翻译的其他 strings xml 文件 您可以通过 Android Studio 中的 翻译
  • 在状态栏下方显示DialogFragment内容

    我试图显示高度和宽度均具有 match parent 的 DialogFragment 但碰巧在顶部 DialogFragment 显示在 StatusBar 下方 DialogFragment 正在应用一些默认值来填充底部 右侧 左侧和顶
  • [cocos2d-x]当我尝试在 Windows 10 中运行“python android-build.py -p 19 cpp-tests”时出现错误

    当我尝试运行命令时python android build p cpp tests 我收到如图所示的错误 在此之前 我收到了另一条关于 Android SDK Tools 版本兼容性的错误消息 所以 我只是将 sdk 版本从 26 0 0
  • 异步更新后更新Android Listview

    我正在将 HTTP 调用从同步调用转换为异步调用 由于连接在后台运行 因此当我最初设置列表适配器时 数据不存在 如何在 HTTP 调用后更新列表适配器 我尝试了一些方法 例如在数据发送回之前不设置适配器并再次设置适配器 但没有任何效果 这是

随机推荐

  • 重启浏览器后右键菜单消失

    我正在开发一个 chrome 扩展 我在扩展程序的右键菜单中添加了一个新的菜单项 安装后工作正常 然后当我重新启动浏览器时 新的右键菜单项消失了 但是扩展工作正常 只有新的菜单项消失了 我比较了chrome官方的contextMenu示例
  • 链接不适用于 jsp 和 jquery(如何在 jsp 页面中的锚标记中链接 websiteurl)

    在我的本地主机中它正在工作 但在我的网站上www step2java com the Java核心链接不起作用 部署后 他们将项目根文件夹放入我的 public html 中 例如 Step2java 请告诉我如何解决 我只使用jsp和jq
  • 在移动视口隐藏或删除 div 类?

    首先 我非常了解 CSS 媒体查询 我的问题是这样的 当你将 div 类堆叠在一个 div 中时 例子 div class class1 class2 div 并且您想删除 class2 media 最大宽度 768px 创建以下输出 di
  • Javascript 代理 set() 继承对象上的本地属性

    根据MDN https developer mozilla org en US docs Web JavaScript Reference Global Objects Proxy handler set handler set 可以捕获继
  • 查找空白注入 PHP 文件

    PHP 文件中的空格有时会出现问题 因此我尝试查找符合常见问题标准的文件 我试图递归地查找具有以下一个或两个条件的所有文件 1 不以 a 开头 lt or 特点 and or 2 不以a结尾 gt 字符 除非它确实以右大括号结尾 后跟任意数
  • 连接 VPN 服务器时“Error Domain=NEVPNErrorDomain Code=1 \"(null)\"”

    我在连接到 VPN 服务器时仅第一次收到 Error Domain NEVPNErrorDomain Code 1 null 之后就可以正常工作了 我查过尝试启动 TunnelProvider 网络扩展时出现 NEVPNErrorDomai
  • 如何使用 Magit 中的 git mv ?

    Is there a nice way to call git mv on a file from within magit I know it s possible to run any git command with but this
  • jquery href 和 onclick 分离

    我有这样的代码 a href Link a func2 返回 true 或 false 然后 仅当 function2 返回 true 时才调用 func1 正确的 在学习jquery的过程中 发现onclick不好 而且贬值 所以我将上面
  • 托管私人 Sphinx 文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在使用 Sphinx 为一个相当复杂的 Django 网站编写一些广泛的文档 我一直在内部从事
  • 在 Angular js 中使用 ng-class 中的函数

    我在用ng class用于添加 CSS 类 尽管有很多关于此的文章 但我无法添加函数调用ng class 我有以下表达 ng class highlighter row Class file id 1 file processed bold
  • 如何在 Visual Studio Code 中为我的 Electron 应用程序使用 ${workspaceRoot}?

    我有一个 Electron 应用程序 我可以在 Visual Studio Code 中调试它 我升级到版本 0 10 8 后 它将不再运行 我在 launch json 文件中收到以下错误消息 相对路径将不再自动转换为绝对路径 考虑使用
  • 通过 XSD 限制基于另一个元素的 XML 元素

    我相信这与keyref但我不确定 我真的不确定它是否可以做到 例如 假设我有 myElement1 和 myElement2 如果 XML 文件中没有 myElement2 则 myElement1 必须存在 否则是可选的 有没有办法在我的
  • 使所选项目适合一行,而不是两行

    我有一个非常简单的选择 当我单击菜单时 它会显示 3 个选项 每个选项都在一行上 但是 当我选择一个项目时 它会显示为 2 行 第一行用于文本 另一行用于图标 我该如何使它成为一根线 import styles css import Edi
  • 使用 SqlCommand.Parameters.AddWithValue 时是否应该包含 @?

    在使用 AddWithValue 时 我总是在参数名称中包含 at 符号 但我只是注意到其他人编写的一些代码没有使用它 一种方法比另一种方法更正确吗 cmd Parameters AddWithValue ixCustomer ixCust
  • 在 Snow Leopard 上运行 iPhone 5 模拟器

    我正在我的 mac 上运行 iOS6 SDK 在 Snow Leopard 上运行 Xcode 4 2 使用以下步骤堆栈溢出帖子 https stackoverflow com questions 9613565 is it possibl
  • LINQ 到 XYZ 多态性?

    我遇到过这样的情况 客户要求我们实现数据访问代码 以根据运行时配置设置使用 Oracle 或 SQL Server 数据库 生产环境使用 Oracle 但开发和 QA 都针对 SQL Server 实例运行 我对此没有任何控制权 也没有任何
  • 如何使用Java 8流遍历多个列表?

    我有三份清单 List
  • 如何开始学习android框架[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 QtCreator 中分​​析 PySide2 + QML?

    我有一个 PySide2 应用程序 它使用 QML 来显示用户界面 该应用程序通过命令行运行 我还可以启动它并在 QtCreator 中调试它 但是 当我尝试运行 QmlProfiler 时 我看到以下错误 1 error home use
  • 从使用中的相机拍照

    如何从正在使用的前置摄像头拍照而不在屏幕上显示摄像头 我有服务舱 public class PhotoTakingService extends Service Camera variables a surface holder priva