diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/MultiSpectatorScreen.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/MultiSpectatorScreen.cs
index 8af5a640fa..b285d3d7c2 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/MultiSpectatorScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/MultiSpectatorScreen.cs
@@ -169,7 +169,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Spectate
if (!isCandidateAudioSource(currentAudioSource?.GameplayClock))
{
currentAudioSource = instances.Where(i => isCandidateAudioSource(i.GameplayClock))
- .OrderBy(i => Math.Abs(i.GameplayClock.CurrentTime - syncManager.MasterClock.CurrentTime))
+ .OrderBy(i => Math.Abs(i.GameplayClock.CurrentTime - syncManager.CurrentMasterTime))
.FirstOrDefault();
foreach (var instance in instances)
diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/SpectatorSyncManager.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/SpectatorSyncManager.cs
index d2f2efffc9..aa6fb878b3 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/SpectatorSyncManager.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/Spectate/SpectatorSyncManager.cs
@@ -35,16 +35,18 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Spectate
///
public event Action? ReadyToStart;
- ///
- /// The master clock which is used to control the timing of all player clocks clocks.
- ///
- public GameplayClockContainer MasterClock { get; }
-
///
/// The catch-up state of the master clock.
///
public IBindable MasterState => masterState;
+ public double CurrentMasterTime => masterClock.CurrentTime;
+
+ ///
+ /// The master clock which is used to control the timing of all player clocks clocks.
+ ///
+ private GameplayClockContainer masterClock { get; }
+
///
/// The player clocks.
///
@@ -57,7 +59,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Spectate
public SpectatorSyncManager(GameplayClockContainer master)
{
- MasterClock = master;
+ masterClock = master;
}
///
@@ -66,7 +68,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Spectate
/// The newly created .
public SpectatorPlayerClock CreateManagedClock()
{
- var clock = new SpectatorPlayerClock(MasterClock);
+ var clock = new SpectatorPlayerClock(masterClock);
playerClocks.Add(clock);
return clock;
}
@@ -142,7 +144,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Spectate
// How far this player's clock is out of sync, compared to the master clock.
// A negative value means the player is running fast (ahead); a positive value means the player is running behind (catching up).
- double timeDelta = MasterClock.CurrentTime - clock.CurrentTime;
+ double timeDelta = masterClock.CurrentTime - clock.CurrentTime;
// Check that the player clock isn't too far ahead.
// This is a quiet case in which the catchup is done by the master clock, so IsCatchingUp is not set on the player clock.