3

WPF プログラムを 24 時間年中無休で実行し、画像とビデオのプレイリストを再生するコンピューターがあります。プログラムを開始すると、すべてが完全に機能しますが、おそらく 2 ~ 3 時間後にメディア要素のウィンドウが黒くなります。

プログラムを起動すると、フォルダー内のすべてのファイル名が取得され、リストボックスに配置されます

 Dim root As String = MediaDir & "media"
    Dim dir As New System.IO.DirectoryInfo(root)
    Dim fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories)

    Dim fileQuery = From file In fileList _
                    Where file.Extension = ".jpg" _
                    Or file.Extension = ".avi" _
                    Or file.Extension = ".mov" _
                    Order By file.Name _
                    Select file

    For Each file In fileQuery
        listbox1.Items.Add(file.FullName)
    Next
    i = 0
    Media_Org.Source = New Uri(listbox1.Items(i), UriKind.Relative)

次の部分は、MediaEnded を使用して次のものをロードすることです。

    Private Sub Media_Org_MediaEnded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Media_Org.MediaEnded

            i = i + 1
            If i = listbox1.Items.Count Then
                i = 0
            End If
            Media_Org.Source = New Uri(listbox1.Items(i), UriKind.Relative)
End Sub

助言がありますか?

「私が抱えているもう 1 つの問題は、ビデオを再生すると CPU が 60 ~ 70% まで上昇することです」

4

1 に答える 1

1

私はフォルダー内のビデオを再生するプロジェクトに取り組んでおり、ビデオはある時間間隔でそのフォルダーに追加されていました。MediaElement がファイルを再生していないように見える場合がありましたが、ビデオの位置は継続していました。Microsoft と話し合った結果、これは MediaElement コントロールのバグであると結論付けました。最終的に、ほとんどの問題を解決した WPF MediaKit http://wpfmediakit.codeplex.com/を使用することになりました。これが役立つことを願っています。

于 2011-03-08T19:49:24.590 に答える