有没有一种简单的方法可以在 QTCaptureSession 中更改设备

发布于 2024-10-06 15:49:57 字数 173 浏览 3 评论 0原文

除了枚举设备数组之外,是否有一种简单的方法可以更改 QTCaptureSession 中的音频/视频设备...

[captureSession inputs]; 

检查设备是否是 QTMediaTypeSound 或 QTMediaTypeVideo 并删除它们?

Is there an easy way to change an audio/video device in QTCaptureSession other than enumarating over an array of devices from...

[captureSession inputs]; 

Checking to see whether the device is QTMediaTypeSound or QTMediaTypeVideo and deleting them?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

安稳善良 2024-10-13 15:49:57

这取决于你所说的“简单”是什么意思。

在我的脑海中,有以下选项:

  1. 首先,为稍后要删除的输入设置一个实例变量。
  2. 通过发送 filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"device.mediaType == \"%@\"", type] 来查询从 -[QTCaptureSession input] 返回的数组它。
  3. 如果您的目标 ≥ 10.6,则可以添加使用 indexesOfObjectsPassingTest: 的选项来确定要删除的输入。

但没有办法(至少据我所知没有)说removeInputsWithMediaType:

HTH

丹尼尔·

That depends on what you mean by "easy".

From the top of my head, there are the following options:

  1. Have an instance variable for the inputs you want to remove later, in the first place.
  2. Query the array returned from -[QTCaptureSession inputs] by sending filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"device.mediaType == \"%@\"", type] to it.
  3. If you are targeting ≥ 10.6 you have the added option of using indexesOfObjectsPassingTest: to determine the inputs you want to remove.

But there is no way (at least none, that I know of) of saying removeInputsWithMediaType:.

HTH

Daniel

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文