1 /* 2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #import <Foundation/Foundation.h> 12 13 #import "RTCMacros.h" 14 15 NS_ASSUME_NONNULL_BEGIN 16 17 @class RTC_OBJC_TYPE(RTCAudioTrack); 18 @class RTC_OBJC_TYPE(RTCPeerConnectionFactory); 19 @class RTC_OBJC_TYPE(RTCVideoTrack); 20 21 RTC_OBJC_EXPORT 22 @interface RTC_OBJC_TYPE (RTCMediaStream) : NSObject 23 24 /** The audio tracks in this stream. */ 25 @property(nonatomic, strong, readonly) NSArray<RTC_OBJC_TYPE(RTCAudioTrack) *> *audioTracks; 26 27 /** The video tracks in this stream. */ 28 @property(nonatomic, strong, readonly) NSArray<RTC_OBJC_TYPE(RTCVideoTrack) *> *videoTracks; 29 30 /** An identifier for this media stream. */ 31 @property(nonatomic, readonly) NSString *streamId; 32 33 - (instancetype)init NS_UNAVAILABLE; 34 35 /** Adds the given audio track to this media stream. */ 36 - (void)addAudioTrack:(RTC_OBJC_TYPE(RTCAudioTrack) *)audioTrack; 37 38 /** Adds the given video track to this media stream. */ 39 - (void)addVideoTrack:(RTC_OBJC_TYPE(RTCVideoTrack) *)videoTrack; 40 41 /** Removes the given audio track to this media stream. */ 42 - (void)removeAudioTrack:(RTC_OBJC_TYPE(RTCAudioTrack) *)audioTrack; 43 44 /** Removes the given video track to this media stream. */ 45 - (void)removeVideoTrack:(RTC_OBJC_TYPE(RTCVideoTrack) *)videoTrack; 46 47 @end 48 49 NS_ASSUME_NONNULL_END 50