Resume stream

This commit is contained in:
2023-08-22 20:04:25 +01:00
parent 5a2bd21cec
commit 092804f023
5 changed files with 41 additions and 18 deletions

View File

@ -25,26 +25,25 @@ public class BackgroundStreamManager : BackgroundService
var streamManager = scope.ServiceProvider.GetRequiredService<StreamManagerFactory>();
var db = scope.ServiceProvider.GetRequiredService<StreamerContext>();
var srs = scope.ServiceProvider.GetRequiredService<SrsApi>();
var recentlyEnded = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(5));
var liveStreams = await db.Streams
.AsNoTracking()
.Where(a => a.State == UserStreamState.Live || a.Ends > recentlyEnded)
.Where(a => a.State == UserStreamState.Live)
.Select(a => a.Id)
.ToListAsync(cancellationToken: stoppingToken);
foreach (var id in liveStreams)
{
var manager = await streamManager.ForStream(id);
var client = await srs.GetStream(manager.GetStream().StreamId);
if (client != default)
var lastSegment = await manager.GetLatestRecordingSegment();
var timeoutStream = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(2)) > lastSegment?.Timestamp;
if (timeoutStream)
{
await manager.UpdateViewers();
await manager.StreamStopped();
}
else
{
await manager.StreamStopped();
await manager.UpdateViewers();
}
}
}