advanceAudioSession method
Test hook: an audio session moves to position seconds (patch, as the server's ≤ 1 Hz position feed) and /
or changes status (full state).
Implementation
void advanceAudioSession(
String sessionId, {
double? position,
String? status,
}) {
final s =
_audioSessions[sessionId] ??
(throw StateError('no audio session $sessionId'));
final topic = DomeTopics.audioSession(s['venueId']! as String, sessionId);
if (position != null) {
s['position'] = position;
if (status == null) {
bus.publish(
topic,
EventKinds.audioSessionState,
patch: {'position': position},
);
}
}
if (status != null) {
s['status'] = status;
if (const {'finished', 'stopped', 'failed'}.contains(status)) {
s['endedAt'] = _now();
}
bus.publish(topic, EventKinds.audioSessionState, resource: s);
}
}