
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}
55 lines
1.6 KiB
Plaintext
55 lines
1.6 KiB
Plaintext
/*
|
|
* Copyright 2016 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#import "RTCAudioSource+Private.h"
|
|
|
|
#include "webrtc/base/checks.h"
|
|
|
|
@implementation RTCAudioSource {
|
|
rtc::scoped_refptr<webrtc::AudioSourceInterface> _nativeAudioSource;
|
|
}
|
|
|
|
@synthesize volume = _volume;
|
|
|
|
- (instancetype)initWithNativeAudioSource:
|
|
(rtc::scoped_refptr<webrtc::AudioSourceInterface>)nativeAudioSource {
|
|
RTC_DCHECK(nativeAudioSource);
|
|
if (self = [super initWithNativeMediaSource:nativeAudioSource
|
|
type:RTCMediaSourceTypeAudio]) {
|
|
_nativeAudioSource = nativeAudioSource;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithNativeMediaSource:
|
|
(rtc::scoped_refptr<webrtc::MediaSourceInterface>)nativeMediaSource
|
|
type:(RTCMediaSourceType)type {
|
|
RTC_NOTREACHED();
|
|
return nil;
|
|
}
|
|
|
|
- (NSString *)description {
|
|
NSString *stateString = [[self class] stringForState:self.state];
|
|
return [NSString stringWithFormat:@"RTCAudioSource( %p ): %@", self, stateString];
|
|
}
|
|
|
|
- (void)setVolume:(double)volume {
|
|
_volume = volume;
|
|
_nativeAudioSource->SetVolume(volume);
|
|
}
|
|
|
|
#pragma mark - Private
|
|
|
|
- (rtc::scoped_refptr<webrtc::AudioSourceInterface>)nativeAudioSource {
|
|
return _nativeAudioSource;
|
|
}
|
|
|
|
@end
|