我正在使用MediaElement播放視頻。現在我想在播放它之前得到它的總持續時間。這怎麼可能?如何使用UWP的MediaElement獲取視頻的總時長
FileOpenPicker openPicker = new FileOpenPicker();
foreach (string extension in FileExtensions.Video)
{
openPicker.FileTypeFilter.Add(extension);
}
StorageFile file = await openPicker.PickSingleFileAsync();
// mediaPlayer is a MediaElement defined in XAML
if (file != null)
{
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
videoMediaElement.SetSource(stream, file.ContentType);
var totalDurationTime = videoMediaElement.NaturalDuration.TimeSpan.TotalSeconds;//get value zero
var totalDurationTime1 = TimeSpan.FromSeconds(videoMediaElement.NaturalDuration.TimeSpan.TotalSeconds);//get zero
videoMediaElement.Play();
}
也許您需要等待MediaOpened事件,然後檢查文件加載後的長度。根據示例[這裏](https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.mediaelement#Windows_UI_Xaml_Controls_MediaElement_MediaOpened)至少對於直播流來說,其他值爲0的值是設置,所以我假設在一個本地文件的情況下,它的長度也應該在該事件之後設置 – Hannes