| Index: webrtc/sdk/objc/Framework/Classes/RTCAudioTrack.mm
|
| diff --git a/webrtc/sdk/objc/Framework/Classes/RTCAudioTrack.mm b/webrtc/sdk/objc/Framework/Classes/RTCAudioTrack.mm
|
| index 42542b8b8f0033acefa116db5b17ebc1827b105f..5fa2d464ff10d0b73fa2b42e4c22f002a70907de 100644
|
| --- a/webrtc/sdk/objc/Framework/Classes/RTCAudioTrack.mm
|
| +++ b/webrtc/sdk/objc/Framework/Classes/RTCAudioTrack.mm
|
| @@ -11,19 +11,30 @@
|
| #import "RTCAudioTrack+Private.h"
|
|
|
| #import "NSString+StdString.h"
|
| +#import "RTCAudioSource+Private.h"
|
| #import "RTCMediaStreamTrack+Private.h"
|
| #import "RTCPeerConnectionFactory+Private.h"
|
|
|
| +#include "webrtc/base/checks.h"
|
| +
|
| @implementation RTCAudioTrack
|
|
|
| +@synthesize source = _source;
|
| +
|
| - (instancetype)initWithFactory:(RTCPeerConnectionFactory *)factory
|
| + source:(RTCAudioSource *)source
|
| trackId:(NSString *)trackId {
|
| - NSParameterAssert(factory);
|
| - NSParameterAssert(trackId.length);
|
| + RTC_DCHECK(factory);
|
| + RTC_DCHECK(source);
|
| + RTC_DCHECK(trackId.length);
|
| +
|
| std::string nativeId = [NSString stdStringForString:trackId];
|
| rtc::scoped_refptr<webrtc::AudioTrackInterface> track =
|
| - factory.nativeFactory->CreateAudioTrack(nativeId, nullptr);
|
| - return [self initWithNativeTrack:track type:RTCMediaStreamTrackTypeAudio];
|
| + factory.nativeFactory->CreateAudioTrack(nativeId, source.nativeAudioSource);
|
| + if ([self initWithNativeTrack:track type:RTCMediaStreamTrackTypeAudio]) {
|
| + _source = source;
|
| + }
|
| + return self;
|
| }
|
|
|
| - (instancetype)initWithNativeTrack:
|
| @@ -34,6 +45,18 @@
|
| return [super initWithNativeTrack:nativeTrack type:type];
|
| }
|
|
|
| +
|
| +- (RTCAudioSource *)source {
|
| + if (!_source) {
|
| + rtc::scoped_refptr<webrtc::AudioSourceInterface> source =
|
| + self.nativeAudioTrack->GetSource();
|
| + if (source) {
|
| + _source = [[RTCAudioSource alloc] initWithNativeAudioSource:source.get()];
|
| + }
|
| + }
|
| + return _source;
|
| +}
|
| +
|
| #pragma mark - Private
|
|
|
| - (rtc::scoped_refptr<webrtc::AudioTrackInterface>)nativeAudioTrack {
|
|
|