我对C#相当新,我试着制作一个Windows手机应用程序,在应用程序中我需要它来减少视频文件。经过几个小时的搜索和询问周围有人向我指出了这一点 https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh868176.aspx
async void TrimVideoFile()
{
Windows.Storage.StorageFile source;
Windows.Storage.StorageFile destination;
var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
openPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.VideosLibrary;
openPicker.FileTypeFilter.Add(".wmv");
openPicker.FileTypeFilter.Add(".mp4");
source = await openPicker.PickSingleFileAsync();
var savePicker = new Windows.Storage.Pickers.FileSavePicker();
savePicker.SuggestedStartLocation =
Windows.Storage.Pickers.PickerLocationId.VideosLibrary;
savePicker.DefaultFileExtension = ".mp4";
savePicker.SuggestedFileName = "New Video";
savePicker.FileTypeChoices.Add("MPEG4", new string[] { ".mp4" });
destination = await savePicker.PickSaveFileAsync();
// Method to perform the transcoding.
TrimFile(source, destination);
}
我已尝试在我正在制作的应用中使用此功能,并在页面上说明
Windows Phone Store应用必须使用pickSingleFileAndContinue。
我尝试过不同的代码组合,如新手所述。
我一直有不同的错误,是否有人可以建议如何在WP8.1上使用
由于
答案 0 :(得分:0)
在使用Windows Phone平台时,必须使用(如文档和编译器所述)PickSingleFileAndContinue()
。这需要使用Continuation Manager,以便您可以在文件选择时选择执行后的应用执行。
同样适用于PickSaveFileAsync()
,在WP上必须为PickSaveFileAndContinue()
;再次,你需要继续经理。
现在,这两种方法都是同步的,因此您无法使用它们。
我想知道的事情:TrimFile
是async void
。如果将其更改为async Task
,则可以使用异步前置TrimFile调用并保留异步(因为您可以等待无效)。
我无法测试这是否有效,因为我现在手上还没有WP设备。