由于现有相机用户,相机“0”的手电筒不可用

2024-05-29

我想创建一个应用程序,它有一个用于录制视频的按钮和另一个单独的切换按钮,用于在录制视频期间打开闪光灯。

我已经使用camera2 API为最近的androids构建了相机应用程序,可以通过图像按钮访问。我将火炬模式设置为切换按钮,但这根本不起作用。但切换按钮可以单独访问闪光灯。

public class MainActivity extends AppCompatActivity {


    private TextureView.SurfaceTextureListener mSurfaceTextureListener = new TextureView.SurfaceTextureListener() {
        @Override
        public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
            setupCamera(width,height);
            connectCamera();
        }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        createFolder();

        mMediaRecorder = new MediaRecorder();

        mTextureView = (TextureView) findViewById(R.id.textureView);
        mRecordButtonimg = (ImageButton) findViewById(R.id.video_online_button);
                mRecordButtonimg.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                if (misRecording) {
                    misRecording = false;
                    mRecordButtonimg.setImageResource(R.mipmap.ic_launcher);
                    mMediaRecorder.stop();
                    mMediaRecorder.reset();
                    startPreview();
                } else {
                    checkWriteStoragePermission();
                    misRecording = true;
                    mRecordButtonimg.setImageResource(R.mipmap.ic_launcher_round);
                }
            }
        });

        mButtonLights = (ToggleButton) findViewById(R.id.buttonLights);
        mButtonLights.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try{
                    cameraManager.setTorchMode(mCameraId, mButtonLights.isChecked());
                }catch (CameraAccessException e){
                    e.printStackTrace();
                }
            }
            });
    }
}

我刚刚将设置的火炬模式添加到 onClickListener 中。我应该将其添加到其他地方吗?因为它不会将其添加到预览中!而且我已经在代码中检查后置摄像头(带手电筒的 id 为 0),所以我不知道为什么代码不起作用。


了解如何在相机预览时打开和关闭手电筒。单击按钮可打开/关闭灯,请使用以下代码:

//at some other function where camera is initialised and start preview
//...
Camera camera = Camera.open();
camera.startPreview();
//...
boolean lightOn = false;
//...

buttonLight.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
                Camera.Parameters p = camera.getParameters();

                if (!lightOn) {
                    lightOn = true;
                    p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
                    camera.setParameters(p);
                } else {
                    lightOn = false;
                    p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
                    camera.setParameters(p);
                }
        }
    });

快乐编码! :D

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

由于现有相机用户,相机“0”的手电筒不可用 的相关文章

  • 接下来查看 id 作为 android 中的自定义属性

    对于我的自定义视图 我还定义了一个自定义属性来保留视图的 id 其格式为 参考 在layout xml中它的定义如下 非常类似于android layout below attr
  • 模拟器上的Environment.getExternalStorageDirectory()

    我想在我的应用程序中读取图像并将其写入外部存储 根据我的阅读 以下是获取目录句柄的正确方法 File externalStorageDir Environment getExternalStorageDirectory File pictu
  • 对 AAssetManager_fromJava 的未定义引用

    我正在尝试使用 AAssetManager 从 Android apk 访问资源 然而 我不断得到 未定义对 AAssetManager fromJava 的引用 即使我已包含 asset manager h 和 asset manager
  • Intent.putExtra列表[重复]

    这个问题在这里已经有答案了 可能的重复 如何将列表放入意图中 https stackoverflow com questions 6541088 how to put a list in intent 我想通过一个List从一项活动转移到另
  • Android:删除整个数据库

    我想删除由我的应用程序创建的完整数据库 你知道有什么adb命令或者android语句可以做到这一点吗 您可以运行命令 adb s emulator 5554 shell or whatever port you use cd data da
  • Android 和 Java Uuid

    我想为我的应用程序生成一个uuid 我尝试了很多东西 例如wifi mac地址 获取android id 序列号 从设备创建伪uuidandroid os Build特性 我还知道java本身有Uuid创建者类java util UUID
  • Android 相机:线程?哪个应该做什么

    我试图弄清楚哪些线程应该在 Android 中执行哪些操作 我发现官方文档中唯一说明的是camera open 应该放入它自己的线程中 关于什么 camera startPreview camera stopPreview camera r
  • Android 本机崩溃从 /system/framework/arm/boot.oat 启动

    最近在 Google Play 中更新我的应用程序后 我开始收到大量崩溃报告 所有这些报告都来自搭载 Android 5 的三星设备 较低的 Android 版本可以正常工作 其他制造商的 Android 5 设备也可以正常工作 我没有任何
  • Jetpack Compose 预览未显示

    我似乎在撰写预览时遇到问题 当我使用 preview 注释撰写方法时 布局面板不会出现 我假设我缺少依赖项 但我已从此处复制并粘贴了代码https developer android com jetpack compose setup ht
  • 尝试打开 Android XML 视图时 Eclipse 中抛出 NullPointerException?

    这是例外情况 java lang NullPointerException at android widget TextView setTextColor TextView java 1787 at android widget TabHo
  • Android ListView:当内容发生变化时,如何保持ListView位于顶部?

    我有一个视图 其中包含绑定到游标适配器的 ListView 当光标内容更改时 我想将 ListView 保留在顶部 然后在我的自定义光标适配器中添加 Override protected void onContentChanged myLi
  • 如何将 VectorDrawable 与 Android 工具栏一起使用?

    在工具栏中使用新的 VectorDrawable 的正确方法是什么 我尝试使用app srcCompat元素如下图所示 但没有任何显示 menu menu
  • 如何将 csv/文本文件从 Android 手机发送到 WiFi 打印机?

    我正在开发一个 Android 应用程序 我应该从数据库中获取 csv txt 文件格式的数据 然后我必须将文件发送到 wifi 打印机 有谁知道我如何开始这样做 答案终于很简单 Socket client new Socket IP PO
  • 如何将相机居中以使标记位于屏幕底部? (谷歌地图API V2 Android)

    单击标记时 相机的默认行为是将其置于屏幕中央 但由于我通常在信息窗口中有很长的文本描述 因此实际更改相机位置以使标记位于屏幕的底部会更方便 屏幕 使信息窗口位于屏幕中央 我认为我应该能够通过重写 onMarkerClick 函数来做到这一点
  • 权限拒绝:开放提供商

    我创建了一个自定义内容提供程序 更多应用程序将访问该内容提供程序 我已在提供程序 AndroidManifest xml 文件中包含了权限标签 在第二个应用程序中 我包含了 use permissions 标签 但没有成功 Logcat 向
  • 如何暂时禁用Android按钮[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我想暂时禁
  • 将阿拉伯语从 android 发送到 PHP 文件

    尝试使用下面的代码将阿拉伯文本从 android 发送到 PHP 文件 Button setOnClickListener new OnClickListener public void onClick View v TODO Auto g
  • 如何获取viewPager选中的Tab?

    我使用 lib viewpagerindicator 创建了一个 viewpager 该活动扩展了 FragmentActivity 因此我在获取选择哪个选项卡时遇到问题 我的适配器由下面的代码给出 class GoogleMusicAda
  • .so 文件的 objdump?需要帮助来理解消息

    我正在开发一个与流相关的本机应用程序 我在我的 c 模块中遇到了一些问题 我收到的是来自 Logcat 的一些消息 这是 Logcat 消息 INFO DEBUG 28 Build fingerprint generic sdk gener
  • Hibernate 对于 Android 应用程序来说是一种杀伤力吗? [复制]

    这个问题在这里已经有答案了 我正在为我的 Android 应用程序寻找一个好的 ORM 乍一看似乎对于移动设备我更喜欢使用更简单的东西 问题是我只是在这里假设 没有真正的证据 所以我想我应该询问社区的意见 也许有人有过这样的经历 它是一个相

随机推荐

  • 如何查找重复字母最多的单词

    我的目标是找到给定字符串中重复字母最多的单词 例如 aabcc ddeeteefef iijjfff 会回来 ddeeteefef 因为 e 在这个单词中重复了五次 这比所有其他重复字符都多 到目前为止 这是我得到的 但它有很多问题并且不完
  • 有没有一种方法可以在没有输入的情况下发送表单值

    假设我有以下表格
  • 调用当前的 Modal ViewController 两次?

    我遇到了 UIViewController presentModalViewController 被调用两次的问题 我有一个模态视图 我试图调出另一个模态视图 但第二次没有任何反应 我怀疑它被隐藏了 还有其他人这样做过吗 您不能在同一个父控
  • Ionic 2:隐藏滚动条并继续滚动

    我只想hide滚动条 在需要滚动的页面中 我正在使用离子2 My 不工作解决方案 scroll content bar overflow hidden 此解决方案隐藏滚动条but使屏幕不可滚动 首先 改变浏览器的自然行为和预期的用户体验是一
  • MVVM 创建 ViewModel

    有人可以向我解释一下如何为 MVVM 模式创建 ViewModel 我试图理解这里的教程 http msdn microsoft com en us magazine dd419663 aspx http msdn microsoft co
  • ngRepeat 中的指令时的绑定问题

    这就是它的样子 这是Plunker http plnkr co edit IPwDLT p preview parent scope ng repeat directive 在指令中 有一个属性与父作用域中的变量进行双向绑定 但这并没有像我
  • 如何使全屏覆盖在方向更改后保持全屏?

    我正在制作一个应用程序 它可以创建在屏幕上行走的微小精灵动画 我有一个主要活动 带有 启动服务 按钮 这会启动一个服务 该服务 在onCreate 创建一个全屏视图并将其附加到根窗口管理器 这部分工作完美 它充满了屏幕 您可以离开应用程序
  • 为什么我的 CSS 属性被覆盖/忽略?

    我对 CSS 层次结构 有一些问题 不确定将其称为层次结构是否正确 我正在尝试设置以下 HTML 的样式 section section
  • 悬停时从下到上填充按钮背景,从下到上填充文本颜色

    我需要创建按钮 并且在悬停时它不仅必须从下到上填充背景颜色 而且还必须从下到上更改文本颜色 我对这里的方法很满意 CSS 悬停时背景从下到上填充 https stackoverflow com questions 51562340 css
  • 带有 FOR 的批处理脚本不起作用

    我需要以下脚本的帮助 machine txt 的下一行不会继续 如果我把 放在 echo machine 后面 它会显示 machine txt 中的机器 因此 它可以工作 但是当 位于脚本末尾时 它不会继续 并退出 echo off se
  • 不支持的字段:将瞬间格式化为日期 ISO 时的年份[重复]

    这个问题在这里已经有答案了 我正在尝试将 Instant 格式化为 ldap 日期 ISO8601 但在 f format Instant now 处失败 String input 20161012235959 0Z DateTimeFor
  • pyVISA:以编程方式将仪器返回到本地模式

    我正在使用 pyVISA 来控制 GPIB 网络中的一些仪器 当我创建资源管理器时 GPIB 网络中的所有仪器都会进入远程模式 因此前面板显示被锁定并且不会更新 当我关闭资源管理器时 仪器仍处于远程模式 import visa rm vis
  • 使用 iOS 修剪音频

    我想实现一项功能 让用户修剪他之前录制的音频文件 caf 录音部分已经可以工作了 但是我如何添加类似于 Voicememos 应用程序中的修剪功能 苹果使用的音频修剪器有API吗 任何帮助都会很棒 使用 AVFoundation 怎么样 将
  • 使用 Mercurial 自动构建的版本编号

    我们最近从 SVN 切换到 Mercurial 我们还设置了一个 CruiseControl NET 来运行自动构建 它从源代码控制中获取最新信息并构建应用程序 在用于自动构建的 CruiseControl NET 仪表板中 我们希望显示版
  • Spring boot 2+日志详细日志不起作用,配合Logback、Hibernate + Weblogic

    I use 甲骨文11 x 春季启动 2 x maven weblogic 作为外部服务器 入口点 SpringBootConfiguration SpringBootApplication public class WebSpringBo
  • 了解涉及 3 个或更多表时 JOIN 的工作原理。 [SQL]

    我想知道是否有人可以帮助我提高对 SQL 中 JOIN 的理解 如果它对问题很重要 我会特别考虑 MS SQL Server 取 3 个表 A B A 通过某些 A AId 与 B 相关 和 C B 通过某些 B BId 与 C 相关 如果
  • 如何在Entity Framework 5中正确触发集合的延迟加载?

    我在我的应用程序中使用 EF5 代码优先 我有一个包含一些延迟加载字段的表 public class TestEntity public int Id get set public virtual TestEntity2 SubEntity
  • 从字符串中删除反斜杠

    我之前回答了一个问题 OP 问他如何从字符串中删除反斜杠 这就是反斜杠在 OP 字符串中的样子 I don t know why I don t have the right answer 这是我的回答 a I don t know why
  • 正则表达式中的零宽度元素是什么?

    最近 我在正则表达式中看到 零宽度元素 这些是什么 能不能把它们当作幽灵数据 这样对于替换 就不会被替换 对于 匹配 他们不会进入matches 1 matches 2 etc 是否有针对其各种用途的良好教程 他们已经在这里呆了很长时间了吗
  • 由于现有相机用户,相机“0”的手电筒不可用

    我想创建一个应用程序 它有一个用于录制视频的按钮和另一个单独的切换按钮 用于在录制视频期间打开闪光灯 我已经使用camera2 API为最近的androids构建了相机应用程序 可以通过图像按钮访问 我将火炬模式设置为切换按钮 但这根本不起