From 0d1305ee8873d4ae3d6a0401056cb3dab78fc390 Mon Sep 17 00:00:00 2001 From: "frederik.riedel" Date: Thu, 23 Feb 2017 13:57:00 -0800 Subject: [PATCH] Added support for changing the volume of RTCAudioSource as discussed in BUG=webrtc:6533 This is a short term solution to change the volume of a RTCAudioTrack (which contains an RTCAudioSource property) until applyConstraints for RTCMediaStreamTracks has been implemented. This CL adds one new Objective-C method to AudioSourceInterface's wrapper: -(void)setVolume:(double)volume BUG=webrtc:6533, webrtc:6805 This is my first CL for Chromium/WebRTC, so please let me know if I did something wrong. Review-Url: https://codereview.webrtc.org/2534843002 Cr-Commit-Position: refs/heads/master@{#16809} --- AUTHORS | 4 ++-- webrtc/sdk/objc/Framework/Classes/RTCAudioSource.mm | 7 +++++++ webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSource.h | 7 +++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 4ff9c399ca..a1c8a67317 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,4 +1,4 @@ -# Names should be added to this file like so: +# Names should be added to this file like so: # Name or Organization Adam Fedor @@ -13,9 +13,9 @@ Christophe Dumez Cody Barnes Colin Plumb Eric Rescorla, RTFM Inc. +Frederik Riedel, Frogg GmbH Giji Gangadharan Graham Yoakum -Hugues Ekra Jake Hilton James H. Brown Jiawei Ou diff --git a/webrtc/sdk/objc/Framework/Classes/RTCAudioSource.mm b/webrtc/sdk/objc/Framework/Classes/RTCAudioSource.mm index 8975652440..2b9c6b92d2 100644 --- a/webrtc/sdk/objc/Framework/Classes/RTCAudioSource.mm +++ b/webrtc/sdk/objc/Framework/Classes/RTCAudioSource.mm @@ -16,6 +16,8 @@ rtc::scoped_refptr _nativeAudioSource; } +@synthesize volume = _volume; + - (instancetype)initWithNativeAudioSource: (rtc::scoped_refptr)nativeAudioSource { RTC_DCHECK(nativeAudioSource); @@ -38,6 +40,11 @@ return [NSString stringWithFormat:@"RTCAudioSource( %p ): %@", self, stateString]; } +- (void)setVolume:(double)volume { + _volume = volume; + _nativeAudioSource->SetVolume(volume); +} + #pragma mark - Private - (rtc::scoped_refptr)nativeAudioSource { diff --git a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSource.h b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSource.h index a86f42bbb7..3ce859e4b3 100644 --- a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSource.h +++ b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSource.h @@ -20,6 +20,13 @@ RTC_EXPORT - (instancetype)init NS_UNAVAILABLE; +// Sets the volume for the RTCMediaSource. |volume] is a gain value in the range +// [0, 10]. +// Temporary fix to be able to modify volume of remote audio tracks +// TODO: property stays here temporarily until a proper volume-api is avaialble +// on the surface exposed by webrtc +@property(nonatomic, assign) double volume; + @end NS_ASSUME_NONNULL_END