如何旋转捕获的视频 (HTML)

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

你可以使用 MediaCapture 类中的 SetPreviewRotationSetRecordRotation 方法,旋转从相机捕获的视频。

此示例的完整代码列在本操作方法末尾。

先决条件

本主题假定你会使用 JavaScript 创建基本 Windows 应用商店应用并在该应用中使用 Windows JavaScript 库模板。有关创建第一个应用的帮助,请参阅创建第一个采用 JavaScript 的 Windows 应用商店应用

说明

步骤 1: 创建 MediaCapture 对象

MediaCapture 类包含用于管理所捕获视频的方法和属性。要从相机捕获和旋转视频,你需要使用 InitializeAsyncStartPreviewAsyncSetPreviewRotation。使用 SetRecordRotation 可为正在录制的视频设置旋转。

此示例将实例化一个新的 MediaCapture 对象,并调用 InitializeAsync 以将 MediaCapture 对象初始化为默认设置。你可以将 MediaCaptureInitializationSettings 对象传入 InitializeAsync 以指定设置。

    oMediaCapture = new Windows.Media.Capture.MediaCapture();
    oMediaCapture.initializeAsync().then(function (result) {

步骤 2: 为录制设置视频旋转

通过将 Windows.Media.Capture.VideoRotation 枚举值传递到 MediaCapture 对象的 SetRecordRotation 方法,为录制设置 视频图像旋转。VideoRotation 枚举指定旋转视频的量,其中包含 0、90、180 和 270 度值。

        oMediaCapture.setRecordRotation(Windows.Media.Capture.VideoRotation.clockwise90Degrees);         

要获得用于录制的旋转值,请调用 GetRecordRotation 方法。此方法返回 VideoRotation 枚举值。

    var videoRotation = oMediaCapture.getRecordRotation();   

同样,用于预览视频的旋转可通过调用 GetPreviewRotationSetPreviewRotation 方法进行设置。这些方法还可使用 VideoRotation 枚举值指定要旋转视频的量。

步骤 3: 录制视频

设置新的视频旋转值后,你可按照如何录制到文件主题中列出的步骤录制旋转的视频。通常,你需要在初始化 MediaCapture 对象前设置视频旋转。

var oMediaCapture;

function setRotation() {
    oMediaCapture = new Windows.Media.Capture.MediaCapture();
    oMediaCapture.initializeAsync().then(function (result) {
        // Set the video rotation value.
        oMediaCapture.setRecordRotation(Windows.Media.Capture.VideoRotation.clockwise90Degrees);         
    }, errorHandler);

    //Check rotation value;
    var videoRotation = oMediaCapture.getRecordRotation();   
    
    // Ready to start the capture session   
}

相关主题

媒体捕获示例