【发布时间】:2020-08-24 08:04:06
【问题描述】:
是否有任何类似于 MediaPlayerElement 但仅用于音频的 UI 控件?或者有什么办法可以删除 MediaPlayerElement 的视频部分?我正在构建一个媒体播放器,但只用于音频,所以我不需要视频部分,这会占用太多空间。
【问题讨论】:
标签: uwp
是否有任何类似于 MediaPlayerElement 但仅用于音频的 UI 控件?或者有什么办法可以删除 MediaPlayerElement 的视频部分?我正在构建一个媒体播放器,但只用于音频,所以我不需要视频部分,这会占用太多空间。
【问题讨论】:
标签: uwp
(免责声明:我从未专门使用过 UWP)
使用MediaPlayerElement,但给它一个明确的高度,以便视频/海报帧区域折叠(假设您使用默认的Stretch="Uniform" 或Stetch="UniformToFill")。
【讨论】:
MediaPlayerElement不是专门用来播放视频的,它也可以播放音频。它只是一个携带媒体的控件。
您只需要提供一个音频源。不输入视频源时,MediaPlayerElement不会显示视频区域。
Xaml
<Grid x:Name="MediaContainer" Height="100">
<MediaPlayerElement x:Name="MyPlayer"
AreTransportControlsEnabled="True"
AutoPlay="True"
>
<MediaPlayerElement.TransportControls>
<MediaTransportControls ShowAndHideAutomatically="False"
x:Name="MyPlayerControls"
IsZoomButtonVisible="False"
IsFullWindowButtonVisible="False"
IsFastRewindButtonVisible="True"
IsFastForwardEnabled="True"
IsFastForwardButtonVisible="True"
IsFastRewindEnabled="True"
/>
</MediaPlayerElement.TransportControls>
</MediaPlayerElement>
</Grid>
Xaml.cs
private MediaSource _mediaSource = null;
private MediaPlayer _mediaPlayer = null;
public void InitMedia(string audioUri)
{
if (_mediaPlayer == null)
{
_mediaPlayer = new MediaPlayer();
MyPlayer.SetMediaPlayer(_mediaPlayer);
}
_mediaSource = MediaSource.CreateFromUri(new Uri(audioUri));
_mediaPlayer.Source = _mediaSource;
}
MediaPlayer本身就是一个没有UI的播放器。 MediaPlayerElement 提供MediaTransportControls 来控制播放进度。如果你不需要这个集成控制面板,你也可以围绕MediaPlayer构建自己的播放体验。
【讨论】: