MediaCapture.SetEncoderProperty(MediaStreamType, Guid, Object) 方法

定義

設定編碼屬性。

public:
 virtual void SetEncoderProperty(MediaStreamType mediaStreamType, Platform::Guid propertyId, Platform::Object ^ propertyValue) = SetEncoderProperty;
void SetEncoderProperty(MediaStreamType const& mediaStreamType, winrt::guid const& propertyId, IInspectable const& propertyValue);
public void SetEncoderProperty(MediaStreamType mediaStreamType, Guid propertyId, object propertyValue);
function setEncoderProperty(mediaStreamType, propertyId, propertyValue)
Public Sub SetEncoderProperty (mediaStreamType As MediaStreamType, propertyId As Guid, propertyValue As Object)

參數

mediaStreamType
MediaStreamType

資料流程所代表的媒體資料類型,例如視訊或音訊。

propertyId
Guid

Platform::Guid

winrt::guid

要設定的編碼屬性。

propertyValue
Object

Platform::Object

IInspectable

編碼屬性的新值。

Windows 需求

應用程式功能
backgroundMediaRecording microphone webcam

備註

如果編碼器屬性只套用至記錄接收中的音訊編碼器,您只能呼叫MediaStreamType 等於 MediaStreamType.Audio的 SetEncoderProperty。 預覽接收不允許使用壓縮音訊來設定編碼設定檔。

針對非 H.264 相機,當您在錄製或預覽開始之前呼叫 SetEncoderProperty 時,屬性會儲存在本機。 當您開始錄製時,屬性會在編碼器初始化時套用至編碼器。 若要設定靜態編碼屬性,您必須先呼叫 SetEncoderProperty,才能開始錄製或預覽。 錄製或預覽開始之前, GetEncoderProperty 會傳回儲存在本機的屬性值。

如果相機是 H.264 相機,而且在 上呼叫 SetEncoderProperty 的資料流程屬於 MediaStreamType.VideoRecord類型,則屬性會直接套用至相機。 這在錄製開始之前和之後都是如此。

針對非 H.264 相機,當您在取得記錄或預覽開始回呼之後呼叫 SetEncoderProperty 時,屬性會直接在編碼器上設定,因此會用來設定動態編碼屬性。

如果您在發出開始錄製或預覽的呼叫之後呼叫 SetEncoderProperty,並在取得記錄或預覽開始完成回呼之前呼叫 SetEncoderProperty,則會收到 MF_E_INVALIDREQUEST 錯誤,因為屬性無法套用至靜態或動態設定。

若要旋轉預覽資料流程,請使用定義為MF_MT_VIDEO_ROTATION的GUID。 如需使用相機時處理方向的操作指南,請參閱 使用 MediaCapture 處理裝置方向

適用於