共用方式為


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 會建立一個簡單的 UI,其中包含兩個 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();
}

適用於