VideoDeviceController.TryAcquireExclusiveControl Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Meminta kontrol eksklusif kamera dengan ID perangkat yang ditentukan.
public:
virtual bool TryAcquireExclusiveControl(Platform::String ^ deviceId, MediaCaptureDeviceExclusiveControlReleaseMode mode) = TryAcquireExclusiveControl;
bool TryAcquireExclusiveControl(winrt::hstring const& deviceId, MediaCaptureDeviceExclusiveControlReleaseMode const& mode);
public bool TryAcquireExclusiveControl(string deviceId, MediaCaptureDeviceExclusiveControlReleaseMode mode);
function tryAcquireExclusiveControl(deviceId, mode)
Public Function TryAcquireExclusiveControl (deviceId As String, mode As MediaCaptureDeviceExclusiveControlReleaseMode) As Boolean
Parameter
- deviceId
-
String
Platform::String
winrt::hstring
ID perangkat kamera yang kontrol eksklusifnya diminta. ID perangkat dapat diperoleh dengan kelas DeviceInformation .
Nilai dari enumerasi MediaCaptureDeviceExclusiveControlReleaseMode yang menentukan kondisi di mana kontrol eksklusif dirilis.
Mengembalikan
bool
Benar jika kontrol eksklusif kamera diperoleh; jika tidak, salah.
Persyaratan Windows
Rangkaian perangkat |
Windows 11 Insider Preview (diperkenalkan dalam 10.0.23504.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v15.0)
|
Contoh
Contoh ini menunjukkan bagaimana aplikasi yang menggunakan kamera dalam kontrol eksklusif dapat memastikan bahwa konfigurasi kamera diatur sebelum memulai pengambilan dan tidak akan diubah oleh aplikasi lain yang memiliki akses ke kamera ini dengan memperoleh kunci kontrol eksklusif di depannya.
private static System.Threading.ManualResetEvent _exclusiveLockAcquire = new System.Threading.ManualResetEvent(false);
public static void RecordVideo()
{
MediaCapture mediacapture = new MediaCapture();
await mediacapture.InitializeAsync();
mediacapture.CaptureDeviceExclusiveControlStatusChanged +=
Mediacapture_CaptureDeviceExclusiveControlStatusChanged;
_exclusiveLockAcquire.WaitOne();
_exclusiveLockAcquire.Reset();
// configure camera - blocking other application from changing the configuration.
// record video
}
private static void Mediacapture_CaptureDeviceExclusiveControlStatusChanged(MediaCapture sender, MediaCaptureDeviceExclusiveControlStatusChangedEventArgs args)
{
if (args.Status == MediaCaptureDeviceExclusiveControlStatus.ExclusiveControlAvailable)
{
if (sender.VideoDeviceController().TryAcquireExclusiveControl(
args.DeviceId(),
MediaCaptureDeviceExclusiveControlReleaseMode.OnAllStreamsStopped))
{
_exclusiveLockAcquire.Set();
}
}
}