Live SDKs iOS v1
Live SDKs iOS
Live SDKs
iOS
Version 1

Create a live event

Copy link

The first step is to configure the live event by providing a LiveEvent.CreateParams object. You can provide some basic information related to the event such as the type of the live event, title, and the cover image that would show on the thumbnail. If not specified, the live event ID will show as the title and the thumbnail will show as black.

When creating a live event, you need to provide the type to specify the type of a live event. The supported features of an event will vary depending on the live event type. The type of the event can't be changed once the event is created. For instance, if you wish to transition from an audio-only event to an event with both audio and video, a brand new live event must be created.

To start a live event, you need at least one host for each live event. For users to enter the live event as a host, provide the IDs of host candidates in the userIdsForHost property of LiveEvent.CreateParams. Up to ten users can be set as host candidates and six of them can act as co-hosts for the live event simultaneously while other four can join the event as participants. When there is an empty seat for the role during the live event, anyone among the four, specified in userIdsForHost, can become a host by re-entering the live event as a host.

Once you have configured the LiveEvent object, you can create a live event by calling the createLiveEvent() method. If the creation was successful, a liveEvent instance is returned, the status of the live event changes to created and a new open channel becomes available in which the host can chat.

In case the open channel isn't available, call fetchOpenChannel() to fetch the open channel.

func createLiveEvent() {
    let config = LiveEvent.CreateParams(
        type: .video   // Acceptable values are .video and .audioOnly
        userIdsForHost: [currentUser.userId],
        coverFile: coverImageURL,
        title: "New Event"  
    )
    SendbirdLive.createLiveEvent(config: config) { result in
        switch result {
        case .success(let liveEvent):
            // A live event is successfully created.
        case .failure(let error):
            // Error occurred while creating a live event.
        }
    }
}