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

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

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

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