3

と を使用MediaTimelineMediaClockて、WMV ビデオの再生を制御しています。

Timeline = new MediaTimeline(new Uri(VideoFileName));
Clock = Timeline.CreateClock(true) as MediaClock;

を見るとClock.NaturalDuration、値は に設定されてAutomaticおり、期間はまだ含まれていませTimeSpanん。

に割り当てClockてビデオの再生を開始すると、が存在し、OK でMediaElementあることがわかります。NaturalDuration.TimeSpan

クロックをメディア要素に割り当てて再生する以外に、ビデオの長さを取得する方法はありますか?

メディア要素を使用しなくても期間を取得する方法はありますか (これが最適です)。

4

3 に答える 3

6

ビデオの長さをチェックする必要があったので、このプロパティは MediaOpened イベントが発生しているときに利用可能であり、それ以外の場合は自動に設定されていることを読みました-これを読んで ください http://msdn.microsoft.com/en-us/library/system .windows.controls.mediaelement.naturalduration(v=vs.95).aspx

media.MediaOpened += new System.Windows.RoutedEventHandler(media_MediaOpened);
            media.LoadedBehavior = MediaState.Manual;
            media.UnloadedBehavior = MediaState.Manual;
            media.Play();

void media_MediaOpened( object sender, System.Windows.RoutedEventArgs e )
        {
            progress.Maximum = (int)media.NaturalDuration.TimeSpan.TotalSeconds;
            timer.Start();
            isPlaying = true;
        }
于 2012-06-17T21:42:10.903 に答える
1

Win Rt アプリまたは Metro C# でビデオ ファイルの長さを取得する

string path = ApplicationData.Current.LocalFolder.Path;
StorageFile videoFile = 
        await StorageFile.GetFileFromPathAsync(presentationItem.Slide_path_local);
Windows.Storage.FileProperties.VideoProperties x = 
        await videoFile.Properties.GetVideoPropertiesAsync();
Duration videoDuration = x.Duration;

ビデオファイルの長さを取得する最良の方法

于 2014-08-27T09:04:56.647 に答える
0

HasTimeSpan プロパティをチェックして、存在することを確認します

private void Element_MediaOpened1(object sender, RoutedEventArgs e)
        {
            if (mediaElement_1.NaturalDuration.HasTimeSpan)
                timelineSlider.Maximum = mediaElement_1.NaturalDuration.TimeSpan.TotalSeconds;
        }
于 2013-11-17T17:47:57.190 に答える