teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/10/25 03:07

投稿

YAmaGNZ
YAmaGNZ

スコア10669

answer CHANGED
@@ -8,4 +8,36 @@
8
8
  IBaseFilter capFilter = null;
9
9
  int hr = graphBuilder.AddSourceFilterForMoniker(devs[0].Mon, null, devs[0].Name,out capFilter);
10
10
  IAMCameraControl cameraControl = capFilter as IAMCameraControl;
11
+ ```
12
+
13
+ 追記
14
+ 内カメラがついたノートPCで試したところ
15
+ 質問者さんが提示されているコード
16
+ ```C#
17
+ IAMCameraControl cameraControl = devs[0] as IAMCameraControl;
18
+ ```
19
+ では、cameraControlがnullとなっていました。
20
+ 下記コードでは、「指定されたプロパティ ID は、指定されたプロパティ設定用にサポートされていません。」とエラーとなりましたのでFocusの調整をサポートしていないカメラだと思われます。
21
+ ```C#
22
+ DsDevice[] devs = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
23
+ IFilterGraph2 graphBuilder = (IFilterGraph2)(new FilterGraph());
24
+ IBaseFilter capFilter = null;
25
+ int hr = graphBuilder.AddSourceFilterForMoniker(devs[0].Mon, null, devs[0].Name, out capFilter);
26
+ IAMCameraControl CamControl = capFilter as IAMCameraControl;
27
+
28
+ try
29
+ {
30
+ int min = 0;
31
+ int max = 0;
32
+ int step = 0;
33
+ int def = 0;
34
+ CameraControlFlags flag = CameraControlFlags.None;
35
+
36
+ hr = CamControl.GetRange(CameraControlProperty.Focus, out min, out max, out step, out def, out flag);
37
+ DsError.ThrowExceptionForHR(hr);
38
+ }
39
+ catch (Exception ex)
40
+ {
41
+ Console.Write(ex.Message);
42
+ }
11
43
  ```