From 47f5d8b714bbd45d84b5dc1d67701139ec3998dd Mon Sep 17 00:00:00 2001 From: cloudwebrtc Date: Sun, 16 Apr 2023 21:50:44 +0800 Subject: [PATCH 1/2] feat: get audio level for track. --- include/rtc_audio_track.h | 3 +++ src/rtc_audio_track_impl.cc | 4 ++++ src/rtc_audio_track_impl.h | 2 ++ 3 files changed, 9 insertions(+) diff --git a/include/rtc_audio_track.h b/include/rtc_audio_track.h index 6e5dc249cb..45b238639a 100644 --- a/include/rtc_audio_track.h +++ b/include/rtc_audio_track.h @@ -16,6 +16,9 @@ class RTCAudioTrack : public RTCMediaTrack { public: // volume in [0-10] virtual void SetVolume(double volume) = 0; + + // audio level [0, 127] + virtual bool GetAudioLevel(int* level) = 0; protected: /** diff --git a/src/rtc_audio_track_impl.cc b/src/rtc_audio_track_impl.cc index 802a3e272a..41dea8de30 100644 --- a/src/rtc_audio_track_impl.cc +++ b/src/rtc_audio_track_impl.cc @@ -18,4 +18,8 @@ void AudioTrackImpl::SetVolume(double volume) { rtc_track_->GetSource()->SetVolume(volume); } +bool AudioTrackImpl::GetAudioLevel(int* level) { + return rtc_track_->GetSource()->GetSignalLevel(level); +} + } // namespace libwebrtc diff --git a/src/rtc_audio_track_impl.h b/src/rtc_audio_track_impl.h index 0c31f5eb93..5811a30822 100644 --- a/src/rtc_audio_track_impl.h +++ b/src/rtc_audio_track_impl.h @@ -23,6 +23,8 @@ class AudioTrackImpl : public RTCAudioTrack { virtual void SetVolume(double volume) override; + virtual bool GetAudioLevel(int* level) override; + virtual const string kind() const override { return kind_; } virtual const string id() const override { return id_; } From e9241624839a637258e85f5bc13680e2be35e528 Mon Sep 17 00:00:00 2001 From: cloudwebrtc Date: Sun, 23 Apr 2023 21:20:44 +0800 Subject: [PATCH 2/2] update. --- include/rtc_audio_track.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/rtc_audio_track.h b/include/rtc_audio_track.h index 45b238639a..f26a7f902b 100644 --- a/include/rtc_audio_track.h +++ b/include/rtc_audio_track.h @@ -17,7 +17,7 @@ class RTCAudioTrack : public RTCMediaTrack { // volume in [0-10] virtual void SetVolume(double volume) = 0; - // audio level [0, 127] + // audio level [0,32767] virtual bool GetAudioLevel(int* level) = 0; protected: