LowLagPhotoCapture.FinishAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Асинхронно освобождает объект LowLagPhotoCapture и ресурсы, используемые операцией захвата фото.
public:
virtual IAsyncAction ^ FinishAsync() = FinishAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction FinishAsync();
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction FinishAsync();
function finishAsync()
Public Function FinishAsync () As IAsyncAction
Возвращаемое значение
Объект , используемый для управления асинхронной операцией.
- Атрибуты
Примеры
Ниже приведен пример настройки и создания фотографий с низкой задержкой. Он отображает захваченную фотографию и эскиз в объекте Image . XAML создает простой пользовательский интерфейс с двумя объектами Image и некоторыми объектами Button для взаимодействия с элементом MediaCapture . В коде есть метод для инициализации объекта MediaCapture , метод для инициализации объекта LowLagPhotoCapture , метод для создания и отображения фотографии и метод для завершения работы LowLagPhotoCapture.
<StackPanel Orientation="Horizontal">
<Image x:Name="imageLowLagPhoto" Stretch="None"
Width="320" Height="240" />
<Image x:Name="imageLowLagThumbnail" Stretch="None"
Width="320" Height="240" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Button Click="InitMediaCapture_Click" Content="Initialize Camera" />
<Button Click="InitLowLagPhotoCapture_Click" Content="Initialize Low Lag Photo Capture"/>
<Button Click="CaptureLagPhotoCapture_Click" Content="Capture Low Lag Photo"/>
<Button Click="CloseLagPhotoCapture_Click" Content="Finish low Lag Capture"/>
</StackPanel>
LowLagPhotoCapture lowLagCaptureMgr = null;
MediaCapture mediaCaptureManager;
async private void InitMediaCapture_Click(object sender, RoutedEventArgs e)
{
mediaCaptureManager = new MediaCapture();
await mediaCaptureManager.InitializeAsync();
}
async private void InitLowLagPhotoCapture_Click(object sender, RoutedEventArgs e)
{
// Enable thumbnail images
mediaCaptureManager.VideoDeviceController.LowLagPhoto.ThumbnailEnabled = true;
mediaCaptureManager.VideoDeviceController.LowLagPhoto.ThumbnailFormat = MediaThumbnailFormat.Bmp;
mediaCaptureManager.VideoDeviceController.LowLagPhoto.DesiredThumbnailSize = 25;
// Image properties
ImageEncodingProperties imgFormat = ImageEncodingProperties.CreateJpeg();
// Create LowLagPhotoCapture object
lowLagCaptureMgr = await mediaCaptureManager.PrepareLowLagPhotoCaptureAsync(imgFormat);
}
async private void CaptureLagPhotoCapture_Click(object sender, RoutedEventArgs e)
{
// Take photo
CapturedPhoto photo = await lowLagCaptureMgr.CaptureAsync();
// Get photo as a BitmapImage
BitmapImage bitmap = new BitmapImage();
await bitmap.SetSourceAsync(photo.Frame);
// Get thumbnail as a BitmapImage
BitmapImage bitmapThumbnail = new BitmapImage();
await bitmapThumbnail.SetSourceAsync(photo.Thumbnail);
// imageLowLagPhoto is a <Image> object defined in XAML
imageLowLagPhoto.Source = bitmap;
// imageLowLagThumbnail is a <Image> object defined in XAML
imageLowLagThumbnail.Source = bitmapThumbnail;
}
async private void CloseLagPhotoCapture_Click(object sender, RoutedEventArgs e)
{
// Release the LowLagPhotoCapture object and resources
await lowLagCaptureMgr.FinishAsync();
}