gpt4 book ai didi

objective-c - iSight 环境传感器

转载 作者:太空狗 更新时间:2023-10-30 03:43:06 28 4
gpt4 key购买 nike

我意识到没有任何关于使用 isight 光传感器的公开文档,但是像 ShadowBook 这样的程序 (shown here)能够访问亮度数据,我只是想知道是否有人能够获得类似的结果并且知道如何访问该传感器?谢谢!

最佳答案

您可以通过 IOKit 库中的 IOService 访问光传感器。光传感器的名称是“AppleLMUController”。这是一个很好的例子:light sensor .简单地说,像这样获取服务:io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("AppleLMUController"));然后,使用以下方式连接到服务:

io_connect_t port = 0;
IOServiceOpen(service, mach_task_self(), 0, &port);

使用以下方法获取光照水平:IOConnectMethodScalarIScalarO(port, 0, 0, 2, &left, &right);其中 leftright 是现在保存传感器光照水平的整数。请注意,许多 IOService 方法返回一个 kern_return_t 变量,它将保存 KERN_SUCCESS,除非该方法失败。还要确保使用 IOObjectRelease(service);

释放服务对象

编辑:再想想,IOConnectMethodScalarIScalarO() 似乎已被弃用。相反,使用:

uint32_t outputs = 2;
uint64_t values[outputs];

IOConnectCallMethod(port, 0, nil, 0, nil, 0, values , &outputs, nil, 0);

左值和右值将分别存储在values[0]values[1] 中。请注意,并非所有 MacBook 都以这种方式工作:在我 2010 年中期的 15'' pro 上,两个值相同,因为光传感器位于 iSight 摄像头中。

关于objective-c - iSight 环境传感器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10061028/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com