UWP MediaPlayerElement:发生未知错误

UWP MediaPlayerElement: An unknown error occurred

我有一个 UWP 应用程序使用媒体元素来呈现视频和音频文件。当我离开应用程序中的 MediaElements 并返回时,我经常得到 "Error: An unknown error occurred" 而不是 video/audio。它看起来像这样:

有时,我可以在收到此错误后导航回来,它会正常加载。 我通过使用 MediaSource.CreateFromStorageFile 传递 StorageFile 来填充 MediaSource,并且只设置一次。我在应用程序中没有收到任何异常,并且在事件查看器中也没有看到任何内容。任何想法将不胜感激!

XAML

                        <MediaPlayerElement Source="{x:Bind MediaSource}" 
                            Width="400"
                            MaxWidth="400"
                            AutoPlay="False"
                            AreTransportControlsEnabled="true"

                            HorizontalAlignment="{x:Bind Alignment, Converter={StaticResource AlignmentConverter}}"
                                        >
                        <MediaPlayerElement.TransportControls>
                            <MediaTransportControls IsCompact="True"
                                                    IsZoomButtonVisible="{x:Bind IsVideo}"
                                                    IsFullWindowButtonVisible="{x:Bind IsVideo}"/>
                        </MediaPlayerElement.TransportControls>
                    </MediaPlayerElement>

经过许多痛苦和 MSDN 票证后,我们解决了这个问题。事实证明,当 MediaPlayerElement 被回收时,它没有被正确处理,所以下次应用程序试图从同一个 MediaSource 加载时,它会因这个错误而中断。

关键是在 MediaPlayerElement 的父元素的 ContainerContentChanging 事件中将元素的 Source 属性 设置为 null标记为回收的元素。