IOStream
open class IOStream : NSObject
The IOStream class is the foundation of a RTMPStream.
-
The enumeration defines the state an IOStream client is in.
See moreDeclaration
Swift
public enum ReadyState : Equatable -
The lockQueue.
Declaration
Swift
public let lockQueue: DispatchQueue -
The offscreen rendering object.
Declaration
Swift
public var screen: Screen { get } -
Specifies the adaptibe bitrate strategy.
Declaration
Swift
public var bitrateStrategy: any IOStreamBitRateStrategyConvertible { get set } -
Specifies the audio monitoring enabled or not.
Declaration
Swift
public var isMonitoringEnabled: Bool { get set } -
Specifiet the device torch indicating wheter the turn on(TRUE) or not(FALSE).
Declaration
Swift
public var torch: Bool { get set } -
Specifies the frame rate of a device capture.
Declaration
Swift
public var frameRate: Float64 { get set } -
Specifies the feature to mix multiple audio tracks. For example, it is possible to mix .appAudio and .micAudio from ReplayKit. Warning: If there is a possibility of this feature, please set it to true initially.
Declaration
Swift
public var isMultiTrackAudioMixingEnabled: Bool { get set } -
Specifies the sessionPreset for the AVCaptureSession.
Declaration
Swift
@available(tvOS 17.0, *) public var sessionPreset: AVCaptureSession.Preset { get set } -
Specifies the video orientation for stream.
Declaration
Swift
public var videoOrientation: AVCaptureVideoOrientation { get set } -
Specifies the audio mixer settings.
Declaration
Swift
public var audioMixerSettings: IOAudioMixerSettings { get set } -
Specifies the video mixer settings.
Declaration
Swift
public var videoMixerSettings: IOVideoMixerSettings { get set } -
Specifies the audio compression properties.
Declaration
Swift
public var audioSettings: AudioCodecSettings { get set } -
Specifies the video compression properties.
Declaration
Swift
public var videoSettings: VideoCodecSettings { get set } -
The audio input formats.
Declaration
Swift
public var audioInputFormats: [UInt8 : AVAudioFormat] { get } -
The video input formats.
Declaration
Swift
public var videoInputFormats: [UInt8 : CMFormatDescription] { get } -
Specifies the controls sound.
Declaration
Swift
public var soundTransform: SoundTransform { get set } -
The number of frames per second being displayed.
Declaration
Swift
@objc public internal(set) dynamic var currentFPS: UInt16 { get } -
Specifies the delegate.
Declaration
Swift
public weak var delegate: (any IOStreamDelegate)? -
Specifies the view.
Declaration
Swift
public var view: (any IOStreamView)? { get set } -
The current state of the stream.
Declaration
Swift
public var readyState: ReadyState { get set } -
Creates an object.
Declaration
Swift
override public init() -
Attaches the camera device.
Declaration
Swift
@available(tvOS 17.0, *) public func attachCamera(_ device: AVCaptureDevice?, track: UInt8 = 0, configuration: IOVideoCaptureConfigurationBlock? = nil) -
Returns the IOVideoCaptureUnit by track.
Declaration
Swift
@available(tvOS 17.0, *) public func videoCapture(for track: UInt8) -> IOVideoCaptureUnit? -
Attaches the audio device.
You can perform multi-microphone capture by specifying as follows on macOS. Unfortunately, it seems that only one microphone is available on iOS.
stream.isMultiTrackAudioMixingEnabled = true var audios = AVCaptureDevice.devices(for: .audio) if let device = audios.removeFirst() { stream.attachAudio(device, track: 0) } if let device = audios.removeFirst() { stream.attachAudio(device, track: 1) }Declaration
Swift
@available(tvOS 17.0, *) public func attachAudio(_ device: AVCaptureDevice?, track: UInt8 = 0, configuration: IOAudioCaptureConfigurationBlock? = nil) -
Returns the IOAudioCaptureUnit by track.
Declaration
Swift
@available(tvOS 17.0, *) public func audioCapture(for track: UInt8) -> IOAudioCaptureUnit? -
Appends a CMSampleBuffer.
Declaration
Swift
public func append(_ sampleBuffer: CMSampleBuffer, track: UInt8 = 0)Parameters
sampleBufferThe sample buffer to append.
trackTrack number used for mixing
-
Appends an AVAudioBuffer.
Declaration
Swift
public func append(_ audioBuffer: AVAudioBuffer, when: AVAudioTime, track: UInt8 = 0)Parameters
audioBufferThe audio buffer to append.
whenThe audio time to append.
trackTrack number used for mixing.
-
Registers a video effect.
Declaration
Swift
public func registerVideoEffect(_ effect: VideoEffect) -> Bool -
Unregisters a video effect.
Declaration
Swift
public func unregisterVideoEffect(_ effect: VideoEffect) -> Bool -
Adds an observer.
Declaration
Swift
public func addObserver(_ observer: any IOStreamObserver) -
Removes an observer.
Declaration
Swift
public func removeObserver(_ observer: any IOStreamObserver) -
Configurations for the AVCaptureSession.
Declaration
Swift
@available(tvOS 17.0, *) public func configuration(_ lambda: (_ session: AVCaptureSession) throws -> Void) rethrows -
A handler that receives stream readyState will update.
Warning
Please do not call this method yourself.Declaration
Swift
open func readyStateWillChange(to readyState: ReadyState) -
A handler that receives stream readyState updated.
Warning
Please do not call this method yourself.Declaration
Swift
open func readyStateDidChange(to readyState: ReadyState)