fix(recordings): не зависать плееру записи; меньше задержка обложки
Bug1: плеер записи (singleton ExoPlayer) не глушился при закрытии шторки и уходе с экрана → аудио-сирота без управления, запуск радио конфликтовал. Теперь воспроизведение записи останавливается на onDismiss и onDispose экрана записей, а старт радио глушит плеер записи (взаимоисключение). Bug2: обложка/трек на открытом плеере обновлялись с задержкой при записи. Эмиссия спектра ограничена ~45/с (было ~86/с) — меньше перегруз перерисовки; поллинг now-playing в захвате маркеров ускорен 15с→8с (точнее тайм-коды). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -37,7 +37,8 @@ class PlayerViewModel @Inject constructor(
|
||||
private val settingsRepository: SettingsRepository,
|
||||
private val recordingRepository: RecordingRepository,
|
||||
private val pushHistoryUseCase: PushHistoryUseCase,
|
||||
private val loveStreamResolver: com.radiola.data.remote.LoveStreamResolver
|
||||
private val loveStreamResolver: com.radiola.data.remote.LoveStreamResolver,
|
||||
private val recordingPlaybackController: com.radiola.service.RecordingPlaybackController
|
||||
) : ViewModel() {
|
||||
|
||||
val isPlaying: StateFlow<Boolean> = playerController.isPlaying
|
||||
@@ -98,6 +99,9 @@ class PlayerViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
fun play(station: Station, playlist: List<Station>? = null) {
|
||||
// Глушим плеер записи, если он играл — иначе два ExoPlayer'а конфликтуют
|
||||
// (радио не стартует, запись зависает без управления).
|
||||
recordingPlaybackController.stop()
|
||||
_currentStation.value = station
|
||||
_currentTrack.value = null
|
||||
_playlist.value = playlist ?: _stations.value
|
||||
|
||||
Reference in New Issue
Block a user