win8 metro MediaCapture 类

近期接触的项目是有关win8 metro 中camera的项目。当中比較重要的类就是 MediaCapture类,如今介绍一下MediaCapture类,也总结一下自己的一些项目体会:

以下是MediaCapture类的一些方法调用:


using System;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Foundation.Metadata;
using Windows.Media;
using Windows.Media.Devices;
using Windows.Media.MediaProperties;
using Windows.Storage;
using Windows.Storage.Streams;

namespace Windows.Media.Capture
{
    // Summary:
    //     Provides functionality for capturing photos, audio, and videos from a capture
    //     device, such as a webcam.
    [Activatable(100794368)]
    [DualApiPartition(version = 100794368)]
    [MarshalingBehavior(MarshalingType.Standard)]
    [Threading(ThreadingModel.MTA)]
    [Version(100794368)]
    public sealed class MediaCapture : IDisposable
    {

        //     创建一个MediaCapture对象的实例
        public MediaCapture();

        //返回一个控制microphone设置的对象。AudioDeviceController对象就是控制microphone设置的对象
        public AudioDeviceController AudioDeviceController { get; }
        //
     
        //MediaCaptureSettings对象包括MediaCapture的设置。这个函数返回MediaCapture对象的设置
        public MediaCaptureSettings MediaCaptureSettings { get; }
        //
    
        //返回一个对象,这个对象控制video camera的设置,VideoDeviceController就是这个对象
        public VideoDeviceController VideoDeviceController { get; }

        // Summary:
        //  这是MediaCapture类的 Events。当在media 捕获的时候错误发生时发生这个事件
        public event MediaCaptureFailedEventHandler Failed;
        //
        // Summary:
        // 这也是MediaCapture类的Events,当超过记录的限制的时候会触发这个事件
        public event RecordLimitationExceededEventHandler RecordLimitationExceeded;

        // Summary:
        //     Adds an audio or video effect.
        //
        // Parameters:
        //   mediaStreamType:
        //     Specifies the streams to which the effect will be applied.
        //
        //   effectActivationID:
        //     The class identifier of the activatable runtime class that implements the
        //     effect. The runtime class must implement the IMediaExtension interface.
        //
        //   effectSettings:
        //     Configuration parameters for the effect.
        //
        // Returns:
        //     Returns an IAsyncAction object that is used to control the asynchronous operation.
        public IAsyncAction AddEffectAsync(MediaStreamType mediaStreamType, string effectActivationID, IPropertySet effectSettings);
        //
        // Summary:
        //     Captures a photo to a storage file.
        //
        // Parameters:
        //   type:
        //     The encoding properties for the output image.
        //
        //   file:
        //     The storage file where the image is saved.
        //
        // Returns:
        //     Returns an IAsyncAction object that is used to control the asynchronous operation.
        public IAsyncAction CapturePhotoToStorageFileAsync(ImageEncodingProperties type, IStorageFile file);
        //
        // Summary:
        //     Captures a photo to a random-access stream.
        //
        // Parameters:
        //   type:
        //     The encoding properties for the output image.
        //
        //   stream:
        //     The stream where the image data is written.
        //
        // Returns:
        //     Returns an IAsyncAction object that is used to control the asynchronous operation.
        public IAsyncAction CapturePhotoToStreamAsync(ImageEncodingProperties type, IRandomAccessStream stream);
        //
        // Summary:
        //     Removes all audio and video effects from a stream.
        //
        // Parameters:
        //   mediaStreamType:
        //     The stream from which to remove the effects.
        //
        // Returns:
        //     Returns a IAsyncAction object that is used to control the asynchronous operation.
        public IAsyncAction ClearEffectsAsync(MediaStreamType mediaStreamType);
        //
        // Summary:
        //     Performs tasks associated with freeing, releasing, or resetting unmanaged
        //     resources.
        public void Dispose();
        //
        // Summary:
        //     Gets the value of an encoding property.
        //
        // Parameters:
        //   mediaStreamType:
        //     Specifies the stream to query for the encoding property.
        //
        //   propertyId:
        //     The encoding property to retrieve.
        //
        // Returns:
        //     Returns the value of the encoding property.
        public object GetEncoderProperty(MediaStreamType mediaStreamType, Guid propertyId);
        //
        // Summary:
        //     Queries whether the video stream is mirrored horizontally.
        //
        // Returns:
        //     True if mirroring is enabled; false otherwise.
        public bool GetPreviewMirroring();
        //
        // Summary:
        //     Gets the rotation of the video preview stream.
        //
        // Returns:
        //     The amount by which the video preview stream is rotated.
        public VideoRotation GetPreviewRotation();
        //
        // Summary:
        //     Gets the rotation of the recorded video.
        //
        // Returns:
        //     The amount by which the recorded video is rotated.
        public VideoRotation GetRecordRotation();
        //
        // Summary:
        //     Initializes the MediaCapture object, using default settings.
        //
        // Returns:
        //     Returns a IAsyncAction object that is used to control the asynchronous operation.
        [Overload("InitializeAsync")]
        public IAsyncAction InitializeAsync();
        //
        // Summary:
        //     Initializes the MediaCapture object.
        //
        // Parameters:
        //   mediaCaptureInitializationSettings:
        //     The initialization settings.
        //
posted @ 2017-05-14 12:12  jzdwajue  阅读(204)  评论(0编辑  收藏  举报