I wanted to suggest some improvements:
1) include StartGraphPollTimer in Play (discussion: 234989)
2) MediaPosition=0 and MediaDuration=0 in Close
3) include property IsMuted
4) include MediaUriElement.GetPicture (media is already open, open it again in MediaDetector?)
How about putting the project on NuGet?
I do not want a fork because I program in VB. =)
1) I put StartGraphPollTimer and solved the bug in Media_Ended
2) I removed the ReadOnly in MediaDuration (yes, I know, bad solution)
3) I created in my app a public property MediaVolume, I binded a slider in this property, and manage the volume of MediaUriElement through another private property:
Public Property MediaVolume As Integer
Set(value As Integer)
_MediaVolume = value
If Not _IsMuted Then
MediaKitElement.Volume = MediaVolume
Dim _MediaVolume As Integer = 70
Dim _IsMuted As Boolean = False
' button click event
Private Sub botMute_Click(sender As Object, e As RoutedEventArgs)
If botMute.Tag = "Sound" Then
botMute.Tag = "Mute"
' WPFMediaKit.IsMuted = true <<<<<<
MediaKit.Volume = 0
_IsMuted = True
botMute.Tag = "Sound"
' WPFMediaKit.IsMuted = false <<<<<<
MediaKit.Volume = _MediaVolume
_IsMuted = False
With a built-in property would be better.
4) I use MediaElement with VisualBrush to capture a frame of the video being played.