Livestream
The UIKit now supports live stream posts so you can create and watch live streams.
Installation
To enable live stream functionalities easily, we’ve provided AmityUIKitLiveStream, which is built on top of AmityUIKit and AmitySDK.
The plugin provides:
LiveStreamBroadcastViewControllerto create and broadcast live stream postsLiveStreamPlayerViewControllerto watch live streams
The live stream plugin can be installed via Swift Package Manager with these steps:
In Xcode, select File > Swift Packages > Add Package Dependency.
Specify the Repository: https://github.com/AmityCo/Amity-Social-Cloud-UIKit-LiveStream-iOS-SwiftPM.
Select Up to Next Major, then click Next.
Select
AmityUIKitLiveStream, thenclick Finish.
After successfully installing the plugin, you must override the live stream behaviors with these steps:
Create
AmityEventHandlersubclass, and override live stream functions.import UIKit import AVKit import AmityUIKit import AmitySDK import AmityUIKitLiveStream import AmityVideoPlayerKit class CustomEventHandler: AmityEventHandler { override func createLiveStreamPost( from source: AmityViewController, targetId: String?, targetType: AmityPostTargetType, destinationToUnwindBackAfterFinish: UIViewController ) { let broadcastVC = LiveStreamBroadcastViewController(client: AmityUIKitManager.client, targetId: targetId, targetType: targetType) broadcastVC.destinationToUnwindBackAfterFinish = destinationToUnwindBackAfterFinish broadcastVC.modalPresentationStyle = .fullScreen source.present(broadcastVC, animated: true, completion: nil) } override func openLiveStreamPlayer(from source: AmityViewController, postId: String, streamId: String) { let playerVC = LiveStreamPlayerViewController(streamIdToWatch: streamId) source.present(playerVC, animated: true, completion: nil) } override func openRecordedLiveStreamPlayer(from source: AmityViewController, postId: String, stream: AmityStream) { let player = AmityRecordedStreamPlayer(client: AmityUIKitManager.client, stream: stream) let playerViewController = AVPlayerViewController() playerViewController.player = player source.present(playerViewController, animated: true) { [weak player] in player?.play() } } }Set the custom event handler for
AmityUIKit.AmityUIKitManager.set(eventHandler: CustomEventHandler())
App Permissions
LiveStreamBroadcastViewController requires these permissions:
Camera Permission - to broadcast live stream video
Microphone Permission - to broadcast live stream audio
After LiveStreamBroadcastViewController is presented, it will prompt to ask permission automatically if needed. You must include these permission keys in your app’s Info.plist file:
NSCameraUsageDescriptionNSMicrophoneUsageDescription
Last updated
Was this helpful?