IVSReplayKitBroadcastSession
Objective-C
@interface IVSReplayKitBroadcastSession : NSObject
Swift
class IVSReplayKitBroadcastSession : NSObject
This is a streamlined version of an IVSBroadcastSession
to be used in a Broadcast Upload Extension.
The extensions are under strict memory constraints, and this class removes some of the SDK features in exchange
for a reduction in memory footprint.
For example, there are no attach or detach APIs. There are 3 devices created for you, corresponding to the screen,
app audio, and the microphone. Pass CMSampleBuffers to these devices from your RPBroadcastSampleHandler
implementation. In addition, there is no mixer configuration and no access to an IVSBroadcastMixer
. This class
does not support multiple image layers, and the primary layer (the device screen) is always sized to the full output
stream scaled to fit. Transparency is also disabled regardless of what is provided in the video configuration.
Finally, you can not create a preview for the systemImageSource
or the session as a whole, they will not render anything.
-
A device that is meant to be associated with the
video
samples in yourRPBroadcastSampleHandler
implementation.Declaration
Objective-C
@property (nonatomic, readonly) id<IVSCustomImageSource> _Nonnull systemImageSource;
-
A device that is meant to be associated with the
audioApp
samples in yourRPBroadcastSampleHandler
implementation.Declaration
Objective-C
@property (nonatomic, readonly) id<IVSCustomAudioSource> _Nonnull systemAudioSource;
-
A device that is meant to be associated with the
audioMic
samples in yourRPBroadcastSampleHandler
implementation.Declaration
Objective-C
@property (nonatomic, readonly) id<IVSCustomAudioSource> _Nonnull microphoneSource;
-
Creates an instance of
IVSReplayKitBroadcastSession
.Declaration
Objective-C
- (nullable instancetype) initVideoConfiguration:(nonnull IVSVideoConfiguration *)videoConfig audioConfig:(nonnull IVSAudioConfiguration *)audioConfig delegate:(nullable id<IVSBroadcastSessionDelegate>)delegate error:(NSError *_Nullable *_Nullable)outError;
Parameters
videoConfig
the video configuration for the output stream.
audioConfig
the audio configuration for the output stream.
delegate
an
IVSBroadcastSessionDelegate
to receive callbacks from the broadcast session.outError
On input, a pointer to an error object. If an error occurs, the pointer is an NSError object that describes the error. If you don’t want error information, pass in nil.
-
Start the configured broadcast session.
Declaration
Objective-C
- (BOOL)startWithURL:(nonnull NSURL *)url streamKey:(nonnull NSString *)streamKey error:(NSError *_Nullable *_Nullable)outError;
Swift
func start(with url: URL, streamKey: String) throws
Parameters
url
the RTMPS endpoint provided by IVS.
streamKey
the broadcaster’s stream key that has been provided by IVS.
outError
A reference to an NSError that would be set if an error occurs.
Return Value
if the operation is successful. If it returns NO check
isReady
. -
Stop the broadcast session, but do not deallocate resources.
Declaration
Objective-C
- (void)stop;
Swift
func stop()