我选择了一些jpg图像并将这些图像添加到MediaComposition(组合)中。UWP将位图集合到视频中
它的工作原理。我得到了剪辑的数量。
private async void encodeImages_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker openPicker = new FileOpenPicker();
foreach (string extension in FileExtensions.Image)
{
openPicker.FileTypeFilter.Add(extension);
}
IReadOnlyList<StorageFile> files = await openPicker.PickMultipleFilesAsync();
composition = new MediaComposition();
foreach (StorageFile file in files)
{
m_files.Add(file);
var clip =await MediaClip.CreateFromImageFileAsync(file, TimeSpan.Zero);
composition.Clips.Add(clip);
}
Debug.WriteLine(composition.Clips.Count);
}
然后我想用MediaComposition生成一个MediaStreamSource。
private void showVideo_Click(object sender, RoutedEventArgs e)
{
GC.Collect();
//FileSavePicker savePicker = new FileSavePicker();
//savePicker.SuggestedStartLocation = PickerLocationId.VideosLibrary;
//savePicker.FileTypeChoices.Add("MP4 File", new List<string>() { ".mp4" });
//savePicker.SuggestedFileName = "output";
//StorageFile videoFile = await savePicker.PickSaveFileAsync();
//await composition.RenderToFileAsync(videoFile);
encodeImagesResult.Position = TimeSpan.Zero;
IMediaSource mediaStreamSource = composition.GeneratePreviewMediaStreamSource(400, 400);
encodeImagesResult.SetMediaStreamSource(mediaStreamSource);
}
它会显示错误“参数不正确”。
我的代码有什么问题?非常感谢!
// var composition = new MediaComposition(); 构图是一个全局变量 – Mxtin