【发布时间】:2018-09-29 18:46:20
【问题描述】:
我正在编写一个带有视频播放器的 UWP 应用程序,并且我正在使用标准的 UWP 媒体播放器(成员名是从输入对话框中获得的字符串):
XAML:
<MediaPlayerElement x:Name="mediaPlayerElement"
Grid.ColumnSpan="3"
Grid.RowSpan="4"
AreTransportControlsEnabled="True"
RequestedTheme="Dark"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
<MediaPlayerElement.TransportControls >
<local:CustomMediaTransportControls IsCompact="False"
IsZoomButtonVisible="True"
IsZoomEnabled="True"
IsPlaybackRateButtonVisible="True"
IsPlaybackRateEnabled="True"
Opacity="0.5"
</local:CustomMediaTransportControls>
</MediaPlayerElement.TransportControls>
</MediaPlayerElement>
还有c#代码(membername是从app的其他地方获取的字符串,是合法的路径,这个检查了很多次,是从picker获取的):
StorageFile myvid = await StorageFile.GetFileFromPathAsync(membername)
mediaPlayerElement.MediaPlayer.Source = MediaSource.CreateFromStorageFile(myvid);
mediaPlayerElement.MediaPlayer.Play();
对于某些文件,例如“.flv”,屏幕上出现错误:“不支持的视频类型”。我试图捕捉这个错误,以便使用 MPEG 解码器而不是标准解码器。我知道,因为我测试过,MPEG 解码器可以完成这项工作。
但是,我不知道要捕获哪个事件。我一直在摆弄试图查看 MediaPlaybackSession.MediaPLaybackState 的值,它总是等于 0..?!?我也一直在尝试捕捉 MediaPlayer.MediaFailed 事件,但似乎没有为此错误生成。我不知道在哪里看。有什么想法吗?
【问题讨论】:
标签: c# uwp media-player