随着智能手机硬件性能的不断提升,不再需要依赖电脑和第三方软件来进行视频编辑。Windows Phone8.1引入了全新的媒体编辑API,使得在手机上进行视频剪辑、应用效果、合成视频等操作变得轻而易举。本文将深入探讨这些API的使用方式。
Windows Phone8.1的媒体编辑API提供了一个名为MediaClip
的类,它代表了单个媒体,可以是视频、图片或纯色视频剪辑。要对媒体文件进行编辑操作,首先需要创建一个MediaClip
对象。
创建MediaClip
对象有三种静态方法:
MediaClip.CreateFromFileAsync(IStorageFile file)
:从视频文件创建MediaClip
对象。MediaClip.CreateFromImageFileAsync(IStorageFile file, TimeSpan originalDuration)
:从图片文件创建MediaClip
对象,其中originalDuration
参数用于在合成视频剪辑时表示图片的显示时长。MediaClip.CreateFromColor(Color color, TimeSpan originalDuration)
:创建一个显示指定时长单色的纯色视频剪辑。这种剪辑通常用于在视频片段之间创建明确的间隔。修剪视频现在是一个两步过程:
MediaClip
对象后,设置其TrimTimeFromStart
和TrimTimeFromEnd
属性。MediaClip
对象将包含修剪后的媒体。可以根据需要多次更改修剪时间。微软的MFT(Media Foundation Transform)平台允许开发者使用C++ WinRT组件来应用各种视频播放和滤镜效果。
Windows.Media.Effects
命名空间中的SlowMotionEffectDefinition
类来实现。Windows.Media
命名空间中的VideoEffects.VideoStabilization
静态字符串属性来实现。虽然Nokia Imaging SDK提供了丰富的图像处理滤镜,但它不支持视频。开发者可以通过MFT开发C++ WinRT组件来解决这个问题。
在应用效果和修剪后,可以使用MediaComposition
类来保存视频。
MediaComposition
是一个MediaClip
对象的组合,允许管理所有剪辑。MediaComposition
提供的预览功能来查看应用效果后的视频。MediaClip
,需要调用其异步方法RenderToFileAsync(IStorageItem file)
。以下是一些示例代码,展示了如何使用这些API:
创建MediaClip
对象:
MediaClip objMediaClip = await MediaClip.CreateFromFileAsync(file);
修剪视频:
objMediaClip.TrimTimeFromStart = new TimeSpan(0, 1, 20);
objMediaClip.TrimTimeFromEnd = objMediaClip.OriginalDuration - new TimeSpan(0, 2, 9);
应用慢动作效果:
var objSlowMotionEffectDefinition = new SlowMotionEffectDefinition();
objSlowMotionEffectDefinition.TimeStretchRate = 0.6;
objMediaClip.VideoEffectDefinitions.Add(objSlowMotionEffectDefinition);
应用视频稳定效果:
var objVideoStabilization = new VideoEffectDefinition(VideoEffects.VideoStabilization);
objMediaClip.VideoEffectDefinitions.Add(objVideoStabilization);
var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("MyVideo.mp4");
await objMediaComposition.RenderToFileAsync(file);