Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Important
Cihaz meta verileri kullanım dışıdır ve windows'un gelecek bir sürümünde kaldırılacaktır. Bu işlevin değiştirilmesi hakkında bilgi için bkz . Sürücü Paketi Kapsayıcı Meta Verileri.
Windows 8.1'de UWP cihaz uygulamaları, cihaz üreticilerinin bazı kamera uygulamalarında daha fazla kamera seçeneği görüntüleyen açılır öğeyi özelleştirmesine olanak sağlar. This topic introduces the More options flyout that's displayed by the CameraCaptureUI API, and shows how the C# version of the UWP device app for camera sample replaces the default flyout with a custom flyout. Genel olarak UWP cihaz uygulamaları hakkında daha fazla bilgi edinmek için bkz. UWP cihaz uygulamalarıyla tanışın.
Note
In Windows 8.1, the built-in camera app does not display a More options button and therefore can't display a UWP device app to show more camera options. However, the CameraCaptureUI class, that's available to all UWP apps, does have a More options button and can display UWP device apps from it.
Kamera örneği için UWP cihaz uygulamasının C# sürümü, daha fazla kamera seçeneği için özel bir açılır öğe kullanıcı arabirimini göstermek için DeviceAppPage.xaml sayfasını kullanır. Örnek ayrıca bir kamera sürücüsü MFT (media foundation dönüşümü) kullanarak kamera efektleri uygular. Bu konuda daha fazla bilgi için bkz. Kamera sürücüsü MFT oluşturma.
Note
Bu konuda gösterilen kod örnekleri , kamera örneği için UWP cihaz uygulamasının C# sürümünü temel alır. Bu örnek JavaScript ve C++ ile de kullanılabilir. Kodun en son sürümlerini görmek için örnekleri indirin.
Kameralar için diğer seçenekler
The more camera options experience is the functionality that a UWP device app provides when another app, a UWP app, captures or previews video from the camera by using the CameraCaptureUI API. It is accessible through the More options link in the Camera options window. Tam ekran değildir, ancak bir kullanıcı dışına tıkladığında veya dokunduğunda kapatılan, hafif ve bağlamsal bir kullanıcı arabirimini görüntüleme denetimi olan açılır bir öge içinde görüntülenir.
Bu deneyim, kameranız için özel video efektleri uygulama gibi farklı özellikleri vurgulamak için kullanılabilir.
Bir UWP cihaz uygulaması bir kamera için yüklenmediğinde, Windows varsayılan olarak daha fazla kamera seçeneği deneyimi sağlar. Windows kameranız için bir UWP cihaz uygulamasının yüklü olduğunu algılarsa ve uygulamanın uzantıyı windows.cameraSettings kabul ettiğini algılarsa, uygulamanız Windows tarafından sağlanan varsayılan deneyimin yerini alır.
Daha fazla kamera seçeneği için açılır menüyü çağırmak üzere:
Open a UWP app that uses the CameraCaptureUI API (the CameraCaptureUI sample, for example)
Tap the Options button in the UI
This opens a Camera options flyout that shows basic options for setting resolution and video stabilization
On the Camera options flyout, tap More options
The More options flyout opens
The default flyout appears when no UWP device app for the camera is installed
A custom flyout appears when a UWP device app for the camera is installed
Bu görüntüde, daha fazla kamera seçeneği için varsayılan açılır menü ve özel bir açılır menü örneği gösterilmektedir.
Prerequisites
Başlamadan önce:
Geliştirme bilgisayarınızı ayarlayın. See Getting started for info about downloading the tools and creating a developer account.
Uygulamanızı mağazayla ilişkilendirin. Daha fazla bilgi için bkz. UWP cihaz uygulaması oluşturun.
Yazıcınızı uygulamanızla ilişkilendiren cihaz meta verileri oluşturun. Bu konuda daha fazla bilgi için bkz. Cihaz meta verileri oluşturma.
Uygulamanızın ana sayfası için kullanıcı arabirimini oluşturun. Tüm UWP cihaz uygulamaları Başlangıç ekranından başlatılabilir ve tam ekran olarak görüntülenir. Ürün veya hizmetlerinizi, cihazlarınızın belirli markalarına ve özelliklerine uygun şekilde vurgulamak için Başlangıç deneyimini kullanın. Kullanabileceği kullanıcı arabirimi denetimlerinin türüyle ilgili özel bir kısıtlama yoktur. Tam ekran deneyiminin tasarımını kullanmaya başlamak için Microsoft Store tasarım ilkelerine bakın.
1. Adım: Uzantıyı kaydetme
Windows'un uygulamanın daha fazla kamera seçeneği için özel bir açılır pencere sağlayabildiğini fark edebilmesi için kamera ayarları uzantısını kaydetmesi gerekir. Bu uzantı, Extension değerine ayarlanmış bir Category özniteliği ile windows.cameraSettings öğesinde bildirilir. C# ve C++ örneklerinde Executable özniteliği DeviceAppForWebcam.exe olarak, EntryPoint özniteliği ise DeviceAppForWebcam.App olarak ayarlanır.
You can add the camera settings extension on the Declarations tab of the Manifest Designer in Microsoft Visual Studio. Xml (Metin) Düzenleyicisi'ni kullanarak uygulama paketi bildirim XML'sini el ile de düzenleyebilirsiniz. Right-click the Package.appxmanifest file in Solution Explorer for editing options.
This example shows the camera settings extension in the Extension element, as it appears in the app package manifest file, Package.appxmanifest.
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">
<Identity Name="Microsoft.SDKSamples.DeviceAppForWebcam.CPP" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="1.0.0.0" />
<Properties>
<DisplayName>DeviceAppForWebcam CPP sample</DisplayName>
<PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
<Logo>Assets\storeLogo-sdk.png</Logo>
</Properties>
<Prerequisites>
<OSMinVersion>6.3.0</OSMinVersion>
<OSMaxVersionTested>6.3.0</OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="DeviceAppForWebcam.App" Executable="$targetnametoken$.exe" EntryPoint="DeviceAppForWebcam.App">
<VisualElements DisplayName="DeviceAppForWebcam CPP sample" Logo="Assets\squareTile-sdk.png" SmallLogo="Assets\smallTile-sdk.png" Description="DeviceAppForWebcam CPP sample" ForegroundText="light" BackgroundColor="#00b2f0">
<DefaultTile ShortName="DeviceApp CPP" ShowName="allLogos" />
<SplashScreen Image="Assets\splash-sdk.png" BackgroundColor="#00b2f0" />
</VisualElements>
<Extensions>
<Extension Category="windows.cameraSettings" Executable="DeviceAppForWebcam.exe" EntryPoint="DeviceAppForWebcam.App" />
</Extensions>
</Application>
</Applications>
</Package>
2. Adım: Kullanıcı arabirimini oluşturma
Uygulamanızı oluşturmadan önce kullanıcı deneyimini tasarlamak için tasarımcılarınız ve pazarlama ekibinizle birlikte çalışmanız gerekir. Kullanıcı deneyimi, şirketinizin marka özelliklerini yansıtmalı ve kullanıcılarınızla bağlantı kurmanıza yardımcı olmalıdır.
Design guidelines
Özel açılır öğenizi tasarlamadan önce UWP uygulaması açılır öğesi yönergelerini gözden geçirmeniz önemlidir. Yönergeler, açılır öğenizin diğer UWP uygulamalarıyla tutarlı sezgisel bir deneyim sağlamasına yardımcı olur.
Uygulamanızın ana sayfasında, Windows 8.1'in tek bir monitörde çeşitli boyutlarda birden çok uygulama görüntüleyebileceğini unutmayın. Uygulamanızın ekran boyutları, pencere boyutları ve yönlendirmeler arasında uygun bir şekilde nasıl yeniden düzenleyebileceği hakkında daha fazla bilgi edinmek için aşağıdaki rehberlere bakın.
Flyout dimensions
Daha fazla kamera seçeneği görüntüleyen açılır öğe 625 piksel yüksekliğinde ve 340 piksel genişliğindedir. The area containing the More options text at the top is provided by Windows and is approximately 65 pixels high, leaving 560 pixels for the viewable area of the custom flyout. Özel açılır öğe genişliği 340 pikseli aşmamalıdır.
Note
Özel açılır öğenizin yüksekliği 560 pikselden fazlaysa, kullanıcı açılır öğeyi kaydırarak veya kaydırarak navigasyon yaparak görüntülenebilir alanın üstünde veya altında kalan kısımları görebilir.
Suggested effects
Color effects. Örneğin, gri tonlama, sepya tonu veya resmin tamamını güneşlendirme.
Face-tracking effects. Resimde bir yüz tanımlandığında, üzerine şapka veya gözlük gibi bir katman eklenir.
Scene modes. Bunlar, farklı aydınlatma koşulları için önceden ayarlanmış pozlama ve odak modlarıdır.
Suggested settings
UWP cihaz uygulamanızın özel açılır menüsü, üretici tarafından sağlanan renk düzeltme düzenleri gibi donanım tarafından uygulanan ayarları etkinleştirmek için bir anahtar sunabilir.
UWP cihaz uygulamanız tarafından sunulan diğer ayarları tamamlayan temel özellikleri uygulayın. Örneğin, birçok cihaz parlaklığı, karşıtlığı, titremeyi, odağı ve pozlamayı ayarlama denetimlerini kullanıma sunabilir, ancak parlaklığı ve karşıtlığı otomatik olarak ayarlamak için TrueColor uygulayan bir cihazın bu ayarları sağlaması gerekmeyebilir.
Restrictions
Uygulamanız akış veya yakalama yapmıyorsa, UWP cihaz uygulamanızın özel açılır penceresini ana uygulamanız üzerinden (yöntemi
CameraOptionsUI.Showçağırarak) açmayın.UWP cihaz uygulamanızın özel açılır öğesinden bir önizleme sağlamayın veya başka bir şekilde video akışının sahipliğini almayın. Özel açılır öğe, video yakalayan başka bir uygulamanın eşlikçisi olarak işlev görecektir. Yakalama uygulaması, video akışının sahipliğine sahiptir. Düşük düzey API'leri kullanarak video akışına erişmeyi denememelisiniz. Bu, yakalama uygulamasının akışa erişimini kaybettiği beklenmeyen davranışlara neden olabilir.
Özel açılır menüde çözünürlüğü ayarlamayın.
Özel açılır pencere için amaçlanan alanın dışında açılır pencereleri, bildirimleri veya iletişim kutularını görüntülemeyi denemeyin. Bu tür diyaloglara izin verilmez.
Özel açılır öğe içinde ses veya video yakalama işlemi başlatmayın. Özel açılır pencere, video kaydını başlatmak yerine video yakalayan başka bir uygulamayı genişletmek için tasarlanmıştır. Ayrıca, ses veya video yakalamak bir sistem iletişim kutusunu tetikleyebilir ve özel açılır pencere içinde açılır iletişim kutularına izin verilmez.
3. Adım: Etkinleştirmeyi işleme
Uygulamanız kamera ayarları uzantısını bildirdiyse, uygulama Etkinleştirme olayını işlemek için bir OnActivated yöntem uygulaması gerekir. This event is triggered when a UWP app, using the CameraCaptureUI class, calls the CameraOptionsUI.Show method. Uygulama etkinleştirme, uygulama başladıktan sonra hangi sayfanın başlatılacağını uygulamanızın seçebileceği zamandır. Windows, kamera ayarları uzantısını bildirmiş uygulamalar için video cihazını Aktive Edilen olay argümanlarında geçirir: Windows.ApplicationModel.Activation.IActivatedEventArgs.
A UWP device app can determine that the activation is intended for camera settings (that someone just tapped More options on the Camera options dialog) when the event argument's kind property is equal to Windows.ApplicationModel.Activation.ActivationKind.CameraSettings.
This example shows the activation event handler in the OnActivated method, as it appears in the App.xaml.cs file. The event arguments are then cast as Windows.ApplicationModel.Activation.CameraSettingsActivatedEventArgs and sent to the Initialize method of the custom flyout (DeviceAppPage.xaml.cs).
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.CameraSettings)
{
base.OnActivated(args);
DeviceAppPage page = new DeviceAppPage();
Window.Current.Content = page;
page.Initialize((CameraSettingsActivatedEventArgs)args);
Window.Current.Activate();
}
}
4. Adım: Ayarları ve efektleri denetleme
When the Initialize method of the custom flyout (DeviceAppPage.xaml.cs) is called, the video device is passed to the flyout through the event arguments. Bu bağımsız değişkenler kamerayı denetleme özelliklerini ortaya çıkarır:
The args.VideoDeviceController property provides an object of type Windows.Media.Devices.VideoDeviceController. Bu nesne, standart ayarları ayarlamak için yöntemler sağlar.
The args.VideoDeviceExtension property is a pointer to the camera driver MFT. Sürücü MFT arabirimleri gösterilmezse bu özellik null olur. Kamera sürücüsü MFT'leri hakkında daha fazla bilgi için bkz. Kamera sürücüsü MFT oluşturma.
This example shows a portion of the Initialize method, as it appears in the DeviceAppPage.xaml.cs file. Burada, video cihaz denetleyicisi (videoDevController nesnesi) ve kamera sürücüsü MFT (lcWrapper nesnesi) oluşturulur ve açılır öğe geçerli kamera ayarlarıyla doldurulur.
public void Initialize(CameraSettingsActivatedEventArgs args)
{
videoDevController = (VideoDeviceController)args.VideoDeviceController;
if (args.VideoDeviceExtension != null)
{
lcWrapper = new WinRTComponent();
lcWrapper.Initialize(args.VideoDeviceExtension);
}
bool bAuto = false;
double value = 0.0;
if (videoDevController.Brightness.Capabilities.Step != 0)
{
slBrt.Minimum = videoDevController.Brightness.Capabilities.Min;
slBrt.Maximum = videoDevController.Brightness.Capabilities.Max;
slBrt.StepFrequency = videoDevController.Brightness.Capabilities.Step;
videoDevController.Brightness.TryGetValue(out value);
slBrt.Value = value;
}
else
{
slBrt.IsEnabled = false;
}
if (videoDevController.Brightness.Capabilities.AutoModeSupported)
{
videoDevController.Brightness.TryGetAuto(out bAuto);
tsBrtAuto.IsOn = bAuto;
}
else
{
tsBrtAuto.IsOn = false;
tsBrtAuto.IsEnabled = false;
}
if (videoDevController.Contrast.Capabilities.Step != 0)
{
slCrt.Minimum = videoDevController.Contrast.Capabilities.Min;
slCrt.Maximum = videoDevController.Contrast.Capabilities.Max;
slCrt.StepFrequency = videoDevController.Contrast.Capabilities.Step;
videoDevController.Contrast.TryGetValue(out value);
slCrt.Value = value;
}
else
{
slCrt.IsEnabled = false;
}
// . . .
// . . .
// . . .
The camera driver MFT is demonstrated in the Driver MFT sample. Kamera sürücüsü MFT'leri hakkında daha fazla bilgi için bkz. Kamera sürücüsü MFT oluşturma.
5. Adım: Değişiklikleri uygulama
Açılır öğedeki denetimlerde değişiklik yapıldığında, değişiklikleri video cihaz denetleyicisine (videoDevController nesnesi) ve kamera sürücüsü MFT'sine (lcWrapper nesnesi) uygulamak için ilgili denetimin Changed olayı kullanılır.
This example shows the Changed methods that apply changes to the video device controller and the camera driver MFT, as they appear in the DeviceAppPage.xaml.cs file.
protected void OnBrtAutoToggleChanged(object sender, RoutedEventArgs e)
{
videoDevController.Brightness.TrySetAuto(tsBrtAuto.IsOn);
slBrt.IsEnabled = !tsBrtAuto.IsOn;
}
protected void OnBrtSliderValueChanged(object sender, RoutedEventArgs e)
{
videoDevController.Brightness.TrySetValue(slBrt.Value);
}
protected void OnCrtAutoToggleChanged(object sender, RoutedEventArgs e)
{
videoDevController.Contrast.TrySetAuto(tsCrtAuto.IsOn);
slCrt.IsEnabled = !tsCrtAuto.IsOn;
}
protected void OnCrtSliderValueChanged(object sender, RoutedEventArgs e)
{
videoDevController.Contrast.TrySetValue(slCrt.Value);
}
protected void OnFocusAutoToggleChanged(object sender, RoutedEventArgs e)
{
videoDevController.Focus.TrySetAuto(tsFocusAuto.IsOn);
slFocus.IsEnabled = !tsFocusAuto.IsOn;
}
protected void OnFocusSliderValueChanged(object sender, RoutedEventArgs e)
{
videoDevController.Focus.TrySetValue(slFocus.Value);
}
protected void OnExpAutoToggleChanged(object sender, RoutedEventArgs e)
{
videoDevController.Exposure.TrySetAuto(tsExpAuto.IsOn);
slExp.IsEnabled = !tsExpAuto.IsOn;
}
protected void OnExpSliderValueChanged(object sender, RoutedEventArgs e)
{
videoDevController.Exposure.TrySetValue(slExp.Value);
}
protected void OnEffectEnabledToggleChanged(object sender, RoutedEventArgs e)
{
if (tsEffectEnabled.IsOn)
{
lcWrapper.Enable();
}
else
{
lcWrapper.Disable();
}
slEffect.IsEnabled = tsEffectEnabled.IsOn;
}
protected void OnEffectSliderValueChanged(object sender, RoutedEventArgs e)
{
lcWrapper.UpdateDsp(Convert.ToInt32(slEffect.Value));
}
Uygulamanızı test etme
This section describes how to install a UWP device app that provides a custom flyout for More options of a camera, as demonstrated in the UWP device app for camera sample.
UWP cihaz uygulamanızı test etmeden önce cihaz meta verileri kullanılarak kameranıza bağlanmalıdır.
- Cihaz uygulaması bilgilerini buna eklemek için yazıcınızın cihaz meta veri paketinin bir kopyasına ihtiyacınız vardır. Cihaz meta verileriniz yoksa, UWP cihaz uygulamanız için cihaz meta verileri oluşturmakonusunda açıklandığı gibi Cihaz Meta Veri Yazma Sihirbazı kullanarak oluşturabilirsiniz.
Note
Cihaz Meta Veri Yazma Sihirbazı'nı kullanmak için, bu konudaki adımları tamamlamadan önce Microsoft Visual Studio Professional, Microsoft Visual Studio Ultimate veya Windows 8.1 içintek başına SDK'yı yüklemeniz gerekir. Windows için Microsoft Visual Studio Express'in yüklenmesi, SDK'nın sihirbazı içermeyen bir sürümünü yükler.
Aşağıdaki adımlar uygulamanızı oluşturur ve cihaz meta verilerini yükler.
Test imzalamayı etkinleştirin.
%ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 klasöründeki DeviceMetadataWizard.exe dosyasına çift tıklayarak Cihaz Meta Verisi Yazma Sihirbazı’nı başlatın.
From the Tools menu, select Enable Test Signing.
Bilgisayarı yeniden başlatın
Çözüm (.sln) dosyasını açarak çözümü oluşturun. F7 tuşuna basın veya örnek yüklendikten sonra üstteki menüden Derleme->Derleme Çözümü gidin.
Yazıcının bağlantısını kesin ve kaldırın. Cihaz bir sonraki algılandığında Windows'un güncelleştirilmiş cihaz meta verilerini okuması için bu adım gereklidir.
Cihaz meta verilerini düzenleyin ve kaydedin. Cihaz uygulamasını cihazınıza bağlamak için cihaz uygulamasını cihazınızla ilişkilendirmeniz gerekir.
Note
Cihaz meta verilerinizi henüz oluşturmadıysanız bkz. UWP cihaz uygulamanız için cihaz meta verileri oluşturma.
Cihaz Meta Veri Yazma Sihirbazı henüz açık değilse, DeviceMetadataWizard.exeçift tıklayarak %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86'dan başlatın.
Cihaz Meta Verilerini Düzenle tıklayın. Bu, mevcut cihaz meta veri paketinizi düzenlemenize olanak tanır.
In the Open dialog box, locate the device metadata package associated with your UWP device app. (It has a devicemetadata-ms file extension.)
UWP cihaz uygulaması bilgilerini belirtin sayfasında, UWP cihaz uygulaması kutusuna Microsoft Store uygulama bilgilerini girin. UWP uygulama bildirim dosyasına tıklayın, bu işlem Paket adı, Yayıncı adıve UWP uygulama kimliğibilgilerini otomatik olarak dolduracaktır.
When you're done, click Next until you get to the Finish page.
Cihaz meta veri paketini gözden geçir sayfasında, tüm ayarların doğru olduğundan emin olun ve Cihaz meta veri paketini yerel bilgisayardaki meta veri deposuna kopyala onay kutusunu seçin. Then click Save.
Cihaz bağlandığında Windows'un güncelleştirilmiş cihaz meta verilerini okuması için cihazınızı yeniden bağlayın.
Harici kameranız varsa kamerayı bağlamanız yeterlidir.
dahili kameranız varsa, Cihazlar ve Yazıcılar klasöründe bilgisayarı yenileyin. Donanım değişikliklerini taramak için Cihaz Yöneticisi'ni kullanın. Cihaz algılandığında Windows güncelleştirilmiş meta verileri okumalıdır.
Note
Bir kamera sürücüsü MFT'sini yükleme hakkında bilgi için , Kamera sürücüsü MFT'sini oluşturma bölümündeki Test bölümüne bakın.
Örnekleri test etme
Kamera seçenekleri deneyimini test etmek için önce şu örnekleri indirin:
- Kamera örneği için UWP cihaz uygulaması
- Kamera Yakalama kullanıcı arabirimi örneği
- Sürücü MFT örneği
Ardından , Sürücü MFT örnek sayfasında sağlanan örnek test yönergelerini izleyin.