媒体播放器问题

时间:2010-03-31 16:02:25

标签: c# wpf media-player

我正在使用c#在wpf中制作媒体播放器。我有3个问题。

  1. 我试过制作一个寻求者

    XAML:

    <Slider Name="timelineSlider" Margin="40,91,26,0" ValueChanged="SeekToMediaPosition" Height="32" VerticalAlignment="Top" />
    

    代码:

    private void Element_MediaOpened(object sender, EventArgs e)
    {
        timelineSlider.Maximum = ply.NaturalDuration.TimeSpan.TotalMilliseconds;
    }
    
    private void SeekToMediaPosition(object sender, RoutedPropertyChangedEventArgs<double> e)
    {
        int SliderValue = (int)timelineSlider.Value;
        TimeSpan ts = new TimeSpan(SliderValue, SliderValue, SliderValue, SliderValue, SliderValue);
        ply.Position = ts;
    }
    

    当我运行程序时,我打开mp3并播放它但寻求者不会移动。当我点击导引头将其移动到某个位置时,歌曲停止播放但寻求者移动。有什么问题,如何解决?

  2. 如何创建音量增加/减少栏?

  3. 如何打开多个mp3并将其排列为播放列表?

2 个答案:

答案 0 :(得分:0)

回答#2,你需要保留一个有序的文件集合,然后收听mediaStopped事件,然后播放集合中的下一个文件。

答案 1 :(得分:0)

我将假设您使用MediaElement控件播放MP3?如果是这样,您的搜索者(有时称为擦除器)可以绑定到MediaElement的Position属性。

<MediaElement x:Name="_media"  />
<Slider Name="timelineSlider" 
        Margin="40,91,26,0" 
        Height="32" 
        VerticalAlignment="Top"
        Value="{Binding Path=Position.TotalMilliseconds, Mode=TwoWay, ElementName=_media}" />

如果要创建音量滑块,可以通过绑定到音量属性使用类似的方法,根据MSDN文档,音量是介于0和1之间的值。

<Slider Name="_volumeSlider"
        Minimum="0"
        Maximum="1"
        Value="{Binding Path=Volume, Mode=TwoWay, ElementName=_media}" />

关于播放多个文件,您需要采用类似于LnDCobra在答案中指出的方法。