diff --git a/OpenUtau.Core/Audio/MiniAudioOutput.cs b/OpenUtau.Core/Audio/MiniAudioOutput.cs index feb50d0e2..378337cb9 100644 --- a/OpenUtau.Core/Audio/MiniAudioOutput.cs +++ b/OpenUtau.Core/Audio/MiniAudioOutput.cs @@ -98,8 +98,10 @@ public void Play() { if (PlaybackState != PlaybackState.Playing) { CheckError(ou_audio_device_start(nativeContext)); } + if (PlaybackState != PlaybackState.Paused) { + currentTimeMs = 0; + } PlaybackState = PlaybackState.Playing; - currentTimeMs = 0; eof = false; } diff --git a/OpenUtau.Core/PlaybackManager.cs b/OpenUtau.Core/PlaybackManager.cs index f756fcf0e..983949c30 100644 --- a/OpenUtau.Core/PlaybackManager.cs +++ b/OpenUtau.Core/PlaybackManager.cs @@ -249,8 +249,6 @@ public void PlayOrPause(int tick = -1, int endTick = -1, int trackNo = -1) { public void Play(UProject project, int tick, int endTick = -1, int trackNo = -1) { if (AudioOutput.PlaybackState == PlaybackState.Paused) { - startMs = project.timeAxis.TickPosToMsPos(tick); - masterMix.Waited = 0; PlayingMaster = true; AudioOutput.Play(); return; diff --git a/OpenUtau.Core/SignalChain/MasterAdapter.cs b/OpenUtau.Core/SignalChain/MasterAdapter.cs index 3ce071165..59e16d4f4 100644 --- a/OpenUtau.Core/SignalChain/MasterAdapter.cs +++ b/OpenUtau.Core/SignalChain/MasterAdapter.cs @@ -8,7 +8,7 @@ class MasterAdapter : ISampleProvider { private int position; public WaveFormat WaveFormat => waveFormat; - public int Waited { get; set; } + public int Waited { get; private set; } public bool IsWaiting { get; private set; } public MasterAdapter(ISignalSource source) { waveFormat = WaveFormat.CreateIeeeFloatWaveFormat(44100, 2);