未验证 提交 5557e721 编写于 作者: R Richasy 提交者: GitHub

修复SMTC显示重复播放器的问题 (#1446)

* 修复SMTC显示重复播放器的问题

* 修复SMTC在直播下的暂停问题
上级 f94e61d0
......@@ -70,11 +70,9 @@ namespace Bili.ViewModels.Uwp.Core
{
_audioPlaybackItem = _audioFFSource.CreateMediaPlaybackItem();
_mediaTimelineController = GetTimelineController();
_videoPlayer.CommandManager.IsEnabled = false;
_videoPlayer.TimelineController = _mediaTimelineController;
_audioPlayer = GetAudioPlayer();
_audioPlayer.CommandManager.IsEnabled = false;
_audioPlayer.Source = _audioPlaybackItem;
_audioPlayer.TimelineController = _mediaTimelineController;
}
......@@ -141,6 +139,7 @@ namespace Bili.ViewModels.Uwp.Core
player.CurrentStateChanged += OnMediaPlayerCurrentStateChangedAsync;
player.MediaEnded += OnMediaPlayerEndedAsync;
player.MediaFailed += OnMediaPlayerFailedAsync;
player.CommandManager.IsEnabled = false;
return player;
}
......@@ -148,6 +147,7 @@ namespace Bili.ViewModels.Uwp.Core
{
var player = new MediaPlayer();
player.MediaFailed += OnMediaPlayerFailedAsync;
player.CommandManager.IsEnabled = false;
return player;
}
......
......@@ -69,6 +69,14 @@ namespace Bili.ViewModels.Uwp.Core
}
else
{
if (_videoPlayer != null
&& _videoPlayer.TimelineController == null
&& _videoPlayer.PlaybackSession != null
&& _videoPlayer.PlaybackSession.CanPause)
{
_videoPlayer.Pause();
}
if (_audioPlayer != null
&& _audioPlayer.TimelineController == null
&& _audioPlayer.PlaybackSession != null
......
......@@ -95,7 +95,7 @@ namespace Bili.ViewModels.Uwp.Core
private async Task InitializeLivePlayerAsync(string url)
{
await _player.SetSourceAsync(url);
StartTimersAndDisplayRequest();
StartTimers();
}
private async Task ChangeLiveAudioOnlyAsync(bool isAudioOnly)
......
......@@ -49,6 +49,7 @@ namespace Bili.ViewModels.Uwp.Core
if (_systemMediaTransportControls != null)
{
_systemMediaTransportControls.DisplayUpdater.ClearAll();
_systemMediaTransportControls.IsEnabled = false;
_systemMediaTransportControls = null;
}
......@@ -118,7 +119,7 @@ namespace Bili.ViewModels.Uwp.Core
}
}
private void StartTimersAndDisplayRequest()
private void StartTimers()
{
_progressTimer?.Start();
_unitTimer?.Start();
......@@ -259,6 +260,7 @@ namespace Bili.ViewModels.Uwp.Core
}
var updater = _systemMediaTransportControls.DisplayUpdater;
updater.ClearAll();
updater.Type = MediaPlaybackType.Video;
updater.Thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromUri(new Uri(cover));
updater.VideoProperties.Title = title;
......
......@@ -29,7 +29,7 @@ namespace Bili.ViewModels.Uwp.Core
ResetPlayer();
ResetMediaData();
await LoadVideoAsync();
StartTimersAndDisplayRequest();
StartTimers();
}
private async Task LoadVideoAsync()
......@@ -143,7 +143,7 @@ namespace Bili.ViewModels.Uwp.Core
try
{
await _player.SetSourceAsync(_video, _audio);
StartTimersAndDisplayRequest();
StartTimers();
}
catch (Exception ex)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册