首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测任何应用程序是否使用麦克风

如何检测任何应用程序是否使用麦克风
EN

Stack Overflow用户
提问于 2022-04-21 14:58:07
回答 3查看 272关注 0票数 0

我写了一个程序,它会根据我是否在开会而改变我的灯光。检测这一点的最简单方法是检查麦克风是否开着。目前,我检查屏幕(OpenCv)上是否出现麦克风图标:

我相信这不是最理想的解决方案。Java中是否有任何方法来检测正在使用麦克风的事实?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-06-30 11:50:06

多亏了埃斯坎达·阿贝迪尼,我才能做到!以下是整个代码:

代码语言:javascript
运行
复制
public enum RegistryType {

    MICROPHONE("microphone"),
    WEBCAM("webcam");

    private final String pathValue;

    RegistryType(String pathValue) {
        this.pathValue = pathValue;
    }

    public String getNonPackagePath() {
        return "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\" + pathValue + "\\NonPackaged";
    }

}

public class RegistryManager {

    private static final String LAST_USED_TIME_STOP = "LastUsedTimeStop";
    private static final Long LAST_USED_TIME_STOP_VALUE = 0L;

    private RegistryManager() {
    }

    public static boolean isMicrophoneWorking() {
        return isDeviceWorking(MICROPHONE);
    }

    public static boolean isWebcamWorking() {
        return isDeviceWorking(WEBCAM);
    }
    private static boolean isDeviceWorking(final RegistryType registryType) {
        final String[] folders = Advapi32Util.registryGetKeys(WinReg.HKEY_CURRENT_USER, registryType.getNonPackagePath());
        return Arrays.stream(folders)
                .map(folder -> registryType.getNonPackagePath() + "\\" + folder)
                .map(register -> Advapi32Util.registryGetLongValue(WinReg.HKEY_CURRENT_USER, register, LAST_USED_TIME_STOP))
                .anyMatch(lastUsedTimeStop -> LAST_USED_TIME_STOP_VALUE.compareTo(lastUsedTimeStop) >= 0);
    }

}

我还不得不使用:https://github.com/java-native-access/jna

票数 0
EN

Stack Overflow用户

发布于 2022-06-13 21:19:25

几年前,我在研究如何通过网络传输音频,我写了一个简单的丑陋的项目。

为了检查麦克风是否准备好使用,我用了:

代码语言:javascript
运行
复制
javax.sound.sampled.TargetDataLine microphone = AudioSystem.getTargetDataLine(null);
if (!microphone.isOpen()) {
    // ...
}

也许这是一个有点无用的信息,但我希望它可以是有用的方向!

链接到类:MicrophoneReader.java

票数 1
EN

Stack Overflow用户

发布于 2022-06-14 11:22:55

您可以检查Windows注册表、检查托盘或其他麦克风使用方式

检测麦克风/照相机是否在使用?

注:

微软警告说,桌面应用程序可以在不通知Windows的情况下录制声音。因为它们不受Microsoft Store应用程序的沙箱限制,所以桌面程序可以直接与您的麦克风硬件接口。这意味着恶意软件可以在Windows不知情的情况下进行记录,因此它不会出现在列表中,也不会显示系统托盘中的麦克风图标。

检测麦克风/照相机是否在使用? 如何在Windows 10中查看哪些应用程序在使用麦克风

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71956625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档