Propriété IWMPMedia::duration

[La fonctionnalité associée à cette page, Le Kit de développement logiciel (SDK) du Lecteur multimédia Windows, est une fonctionnalité héritée. Elle a été remplacée par MediaPlayer. MediaPlayer a été optimisé pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer au lieu du SDK du Lecteur multimédia Windows, lorsque cela est possible. Microsoft recommande, si possible, la réécriture du code existant qui utilise les API héritées pour être à jour avec les nouvelles API.]

La propriété durée donne la durée en secondes de l’élément multimédia actuel.

Cette propriété est en lecture seule.

Syntaxe

public System.Double duration {get;}

Public ReadOnly Property duration As System.Double

Valeur de la propriété

Un System.Double qui est la durée en secondes.

Notes

Si cette propriété est utilisée avec un élément multimédia autre que celui spécifié dans AxWindowsMediaPlayer.currentMedia, il peut ne contenir aucune valeur valide.

Pour récupérer la durée des fichiers ne se trouvant pas dans la bibliothèque de l’utilisateur, vous devez attendre l’ouverture du fichier par le Lecteur multimédia Windows. Autrement dit, l’OpenState actuel doit être égal à MediaOpen. Vous pouvez le vérifier en gérant l’événement AxWindowsMediaPlayer._WMPOCXEvents_OpenStateChange ou en vérifiant de manière périodique la valeur d’AxWindowsMediaPlayer.openState.

Pour les playlists, la durée de chaque élément multimédia peut être récupérée lorsqu’il est ouvert, plutôt qu’à l’ouverture de la playlist.

Avant d’utiliser cette propriété, vous devez disposer d’un accès en lecture à la bibliothèque. Pour plus d’informations, consultez Accès à la bibliothèque.

Exemples

L’exemple suivant utilise la propriété durée pour afficher le temps restant dans l’élément multimédia actuel dans une étiquette. Un minuteur met à jour le texte de l’étiquette toutes les secondes.

// Set the timer to fire an event every second and start the timer.
timer.Interval = 1000;
timer.Start();

// Note:  Use the AxWindowsMediaPlayer.PlayStateChange event with a switch statement to
// determine when to start and stop the timer. 

private void TimerEventProcessor(object sender, System.EventArgs e)
{
    // Subtract the current position from the duration of the current media to get
    // the time remaining. Use the Math.floor method to round the result down to the
    // nearest whole number.
    double t = Math.Floor(player.currentMedia.duration - player.Ctlcontrols.currentPosition);

    // Display the time remaining in the current media.
    timeRemaining.Text = ("Seconds remaining: " + t.ToString());        
}

' Set the timer to fire an event every second and start the timer.
Timer.Interval = 1000
Timer.Start()

' Note:  Use the AxWindowsMediaPlayer.PlayStateChange event with a Select Case statement to
' determine when to start and stop the timer. 

Public Sub TimerEventProcessor(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer.Tick

    ' Subtract the current position from the duration of the current media to get
    ' the time remaining. Use the Math.Floor method to round the result down to the
    ' nearest whole number.
    Dim t As Double = Math.Floor(player.currentMedia.duration - player.Ctlcontrols.currentPosition)

    ' Display the time remaining in the current media.
    timeRemaining.Text = ("Seconds remaining: " + t.ToString())

End Sub

Configuration requise

Condition requise Valeur
Version
Lecteur multimédia Windows série 9 ou ultérieure
Espace de noms
WMPLib
Assembly
Interop.WMPLib.dll (Interop.WMPLib.dll.dll)

Voir aussi

AxWindowsMediaPlayer.currentMedia (VB et C#)

AxWindowsMediaPlayer.openState (VB et C#)

AxWindowsMediaPlayer.OpenStateChange Event (VB et C#)

IWMPMedia Interface (VB et C#)

IWMPMedia.durationString (VB et C#)