Hello I’m building rust server using mediasoup version 0.18 The voice chat is work but volume observer is not working. help me please
// here is observer created and print volume change
let mut options = AudioLevelObserverOptions::default();
options.max_entries = NonZero::new(5).unwrap();
options.threshold = -40;
options.interval = 300;
let audio_level_observer = router
.create_audio_level_observer(options)
.await
.expect("Failed to create audio level observer");
let _ = audio_level_observer.on_volumes(move |volumes| {
// volumes: &[AudioLevelObserverVolume]
// 각 volume에 대해 producer_id → session_id 매핑
for v in volumes {
let volume = v.volume;
let producer_id = v.producer.id(); // ProducerId
println!(
"Audio level detected - Producer ID: {}, Volume: {}",
producer_id, volume
);
}
});
// other file creating producer
if producer_kind == mediasoup::prelude::MediaKind::Audio {
let options =
mediasoup::prelude::RtpObserverAddProducerOptions::new(producer_id);
self.audio_level_observer
.add_producer(options)
.await
.expect("Failed to observe producer audio level");
info!(producer_id = %producer_id, "Audio level observer registered for producer");
} else {
info!(producer_id = %producer_id, kind = ?producer_kind, "Producer is not audio, skipping audio level observer registration");
}
When I run server println prints nothing even I’m talking what is wrong?
currently it seems like extension id mapping missmatch. The server uses number 10 but client uses 1 for voice-level extension How can I sync the id?