MediaPlayer
요소를 사용한다고 가정하면 MediaPlayer.Position
속성을 사용하여 현재 재생 위치를 알릴 수 있습니다. 현재 재생 위치를 표시하는 UI 요소에 바인딩 된 데이터 인 속성을 계속 업데이트하려면 DispatcherTimer
을 사용해야합니다. 이 작업을 수행하려면 Slider.Maximum
속성을 올바른 값으로 설정해야합니다. 뒤에 코드에서
: 여기에 기본 예제입니다
XAML에서
private void InitialiseMediaPlayer()
{
mediaPlayer = new MediaPlayer();
mediaPlayer.MediaOpened += MediaPlayer_MediaOpened;
mediaPlayer.Open(new Uri(SomeFilePath, UriKind.Absolute));
}
private void MediaPlayer_MediaOpened(object sender, EventArgs e)
{
if (mediaPlayer.NaturalDuration.HasTimeSpan)
{
SliderMaximum = mediaPlayer.NaturalDuration.TimeSpan.TotalSeconds;
mediaPlayerTimer = new DispatcherTimer();
mediaPlayerTimer.Interval = TimeSpan.FromMilliseconds(1000);
mediaPlayerTimer.Tick += MediaPlayerTimer_Tick;
mediaPlayerTimer.Start();
mediaPlayer.Play();
}
}
private void MediaPlayerTimer_Tick(object sender, EventArgs e)
{
Position = mediaPlayer.Position.TotalSeconds;
Time = mediaPlayer.Position;
}
:
<Slider Grid.Column="1" Value="{Binding Position, FallbackValue=0}" Maximum="{Binding
SliderMaximum, FallbackValue=0, Mode=OneWay}" Minimum="0" Margin="5,0"
VerticalAlignment="Center" />
<TextBlock Grid.Column="2" Text="{Binding Time, StringFormat={}{0:hh}:{0:mm}:{0:ss},
FallbackValue=00:00:00, Mode=OneWay}" VerticalAlignment="Center" />
당신은 또한 Position
속성 setter에 다음 줄을 추가해야 할 수 있습니다 :
mediaPlayer.Position = TimeSpan.FromSeconds(position);
iTunes로이 작업을 도와 줄 수 있습니까? –