Skip to content

Commit abc8b65

Browse files
committed
android,ios: add defaultTrackVolume control to WebRTCModuleOptions
1 parent 0c70bee commit abc8b65

File tree

5 files changed

+11
-0
lines changed

5 files changed

+11
-0
lines changed

android/src/main/java/com/oney/WebRTCModule/PeerConnectionObserver.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,8 @@ public void onAddTrack(final RtpReceiver receiver, final MediaStream[] mediaStre
447447
if (!existingTrack) {
448448
if (track.kind().equals(MediaStreamTrack.VIDEO_TRACK_KIND)) {
449449
videoTrackAdapters.addAdapter((VideoTrack) track);
450+
} else if (track.kind().equals(MediaStreamTrack.AUDIO_TRACK_KIND)) {
451+
((AudioTrack) track).setVolume(WebRTCModuleOptions.getInstance().defaultTrackVolume);
450452
}
451453
remoteTracks.put(track.id(), track);
452454
}

android/src/main/java/com/oney/WebRTCModule/WebRTCModuleOptions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class WebRTCModuleOptions {
2121
public Logging.Severity loggingSeverity;
2222
public String fieldTrials;
2323
public boolean enableMediaProjectionService;
24+
public double defaultTrackVolume = 1.0;
2425

2526
public static WebRTCModuleOptions getInstance() {
2627
if (instance == null) {

ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#import "WebRTCModule+RTCPeerConnection.h"
2121
#import "WebRTCModule+VideoTrackAdapter.h"
2222
#import "WebRTCModule.h"
23+
#import "WebRTCModuleOptions.h"
2324

2425
@implementation RTCPeerConnection (React)
2526

@@ -932,6 +933,10 @@ - (void)peerConnection:(RTC_OBJC_TYPE(RTCPeerConnection) *)peerConnection
932933
if (track.kind == kRTCMediaStreamTrackKindVideo) {
933934
RTCVideoTrack *videoTrack = (RTCVideoTrack *)track;
934935
[peerConnection addVideoTrackAdapter:videoTrack];
936+
} else if (track.kind == kRTCMediaStreamTrackKindAudio) {
937+
RTCAudioTrack *audioTrack = (RTCAudioTrack *)track;
938+
WebRTCModuleOptions *options = [WebRTCModuleOptions sharedInstance];
939+
audioTrack.source.volume = options.defaultTrackVolume;
935940
}
936941

937942
peerConnection.remoteTracks[track.trackId] = track;

ios/RCTWebRTC/WebRTCModuleOptions.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
1313
@property(nonatomic, assign) RTCLoggingSeverity loggingSeverity;
1414
@property(nonatomic, assign) BOOL enableMultitaskingCameraAccess;
1515

16+
@property(nonatomic, assign) double defaultTrackVolume;
17+
1618
#pragma mark - This class is a singleton
1719

1820
+ (instancetype _Nonnull)sharedInstance;

ios/RCTWebRTC/WebRTCModuleOptions.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ - (instancetype)init {
2222
self.videoEncoderFactory = nil;
2323
self.videoDecoderFactory = nil;
2424
self.loggingSeverity = RTCLoggingSeverityNone;
25+
self.defaultTrackVolume = 1.0;
2526
}
2627

2728
return self;

0 commit comments

Comments
 (0)