diff --git a/include/rtc_audio_track.h b/include/rtc_audio_track.h index 6e5dc249cb..f26a7f902b 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,32767] + 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_; }