Skip to main content
Version: iOS SDK v1.0.12

Host a Low Latency Camera Stream

This guide shows you how to use our low latency live streaming framework to broadcast (1:n) a camera stream to multiple devices.

Setup​

Make sure you followed the guide to use our live framework in your project.

Import our Live Framework in your ViewController.

import VideoKitLive

Now, in our viewDidLoad

  • We setup the live preview view, which will give us a preview of what we are going to stream
  • Prepare the stream,
  • Set our desired parameters,
  • And start hosting the broadcast

Stream Using Back Camera​

override func viewDidLoad() {
let streamView = UIView(frame: .zero)
view.addSubview(streamView)
streamView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
streamView.topAnchor.constraint(equalTo: view.topAnchor),
streamView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
streamView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
streamView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
])

let vkLive = VKLiveStream()

// Set camera to back camera (default is back)
vkLive.streamer.cameraPosition = .front

// We want to stream video and audio (other options for instance are cameraVideoOnly or audioOnly)
vkLive.streamer.streamingMode = .cameraVideoAndAudio

// Start hosting inside your view streamView
// This will initialize the stream on our backend, prepare your camera and preview view
// and give you a VKStreamerProtocol instance (streamer) to start broadcasting
vkLive.host(type: .lowLatency, inView: streamView) { (streamer, stream, error) in
guard let stream = stream else {
print("There was an error starting your stream.")
return
}

// Start broadcasting your stream
streamer.start()

print("Stream started: \(stream.id)")
print("Playback url: " + stream.getPlaybackUrl()?.absoluteString ?? "Error retrieving stream URL")
}
}

Stop Streaming​

vkLive.stopHosting(stream: stream) { (success) in
print("Stream ended.")
}