2

テスト コードの特定の場所でビデオを一時停止しようとしていますが、まったく別の位置から開始しようとしています。最終的には別のポイントから開始しましたが、再び一時停止すると、登録した最初のインスタンスに戻ります。このコードで何が間違っているのか知りたいです。

CSファイルのコードは

namespace timer_thread_and_gui
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
        DispatcherTimer timer;
        DispatcherTimer timer1;


    public MainWindow()
    {
        InitializeComponent();

   }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        timer1 = new DispatcherTimer();
        timer1.Tick += new EventHandler(dispatcherTimer_Tick1);
        timer1.Interval = new TimeSpan(0, 0, 10);

                    timer = new DispatcherTimer();
                    timer.Tick += new EventHandler(dispatcherTimer_Tick);
                    timer.Interval = new TimeSpan(0, 0, 5);
                    video_panel.Play();




            timer1.Start();
            timer.Start();




    }

    private void dispatcherTimer_Tick(object sender, EventArgs e)
    {
        this.draw_an_elipse();

       draw_an_elipse()
    {
       ++a;
       txt.Text = a.ToString();



       if (a%5==0)
       {
           video_panel.Stop();
           video_panel.Position = new TimeSpan(0, 18, 30);

           video_panel.Play();
           timer1.Start();
       }
    }

   private void dispatcherTimer_Tick1(object sender, EventArgs e)
   {

    video_panel.Pause();
    timer1.Stop();
   }

}

XAMLコードは

<MediaElement Height="266" HorizontalAlignment="Left" Margin="12,33,0,0" Name="video_panel" 
                  VerticalAlignment="Top" Width="474" 
                  LoadedBehavior="Manual" UnloadedBehavior="Stop" 
                  Source="c:\users\ayymmoo\documents\visual studio 2010\Projects\Unfinished.avi" />
4

1 に答える 1

2

ビデオが停止した位置に応じて別の位置にジャンプしたい場合、 TimeSpan は絶対ではなく、この停止位置に関連する必要があります。

たとえば、一時停止後に 10 秒以上ジャンプしたい場合は、次のようにする必要があります。

MediaElement.Position += TimeSpan.FromSeconds(10);
于 2012-11-25T14:13:47.057 に答える