我需要在 Windows Phone 8 的默认相机类PhotoCaptureDevice之上创建一个相机类
理想情况下,我本来想建立一个子班
class CustomCaptureDevice:PhotoCaptureDevice{
....
....
}
这将允许我配置相机设备,并通过 CustomCaptureDevice 提供一些额外的帧处理技术。不幸的是,PhotoCaptureDevice
is a sealed class
,因此我不能这样做。
现在我可以想到两种可以帮助我解决问题的替代方法:
(1)
class CustomCaptureDevice
{
private PhotoCaptureDevice captureDevice;
// Implement all the functions of PhotoCaptureDevice here. And internally redirect them to PhotoCaptureDevice
}
上面的方法太麻烦了。如果对 PhotoCaptureDevice 进行任何 API 更改,可能需要对 CustomCaptureDevice 类进行重大更新。
(2)
class CustomCaptureDevice
{
public PhotoCaptureDevice captureDevice;
// Expose this variable to the user, who can set things in PhotoCaptureDevice as per his needs.
}
以上似乎是一个更简单的解决方案,因为如果对 PhotoCaptureDevice 进行 API 更改,它只需要最少的更新。
看来(2)可以很好地满足我的要求。但我有一个额外的要求,因为 (2) 可能证明不合适。我想禁用 PhotoCaptureDevice 中的某些配置功能,因为我想保留一些用户无法配置的参数,例如曝光和焦点。
我怎么能在(2)的设计框架中做到这一点。有可能吗?
我知道通过方法(1)很容易实现。请注意密封类PhotoCaptureDevice
的约束。