Je joue une vidéo en utilisant MediaElement. Maintenant, je veux obtenir sa durée totale avant de le jouer. Comment est-ce possible?Comment obtenir la durée totale d'une vidéo en utilisant MediaElement de UWP
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();
}
peut-être que vous devez attendre l'événement MediaOpened et vérifiez la longueur après le chargement du fichier. Selon l'exemple [ici] (https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.mediaelement#Windows_UI_Xaml_Controls_MediaElement_MediaOpened) au moins pour un flux en direct une valeur autre que 0 est ensemble, donc je suppose que dans le cas d'un fichier local sa longueur devrait être définie aussi bien après cet événement – Hannes