라이브 보기

1. 화면 구성하기

라이브 화면을 보기 위한 UIView를 구성합니다.

2. 라이브를 보기 위한 인스턴스 생성

라이브를 보려면 라이브를 보기위한 인스턴스를 생성해야 합니다.

// 플레이어 객체 생성
// video 비디오 리스트를 통해 얻어올 수 있습니다.
let player = sdk.getPlayer(video_key: video.video_key)

‘getPlayer’ 함수를 사용해서 라이브를 보기위한 인스턴스를 얻으려면 Video 객체를 파라메터로 넣어주어야 합니다. Video 객체는 라이브 리스트를 가져오는 함수(getVideos)를 통해서 얻을 수 있습니다.

sdk.getVideos(page: 0, size: 0, type: "BROADCASTED", state: "LIVE") { (videoResult) in
switch videoResult {
case .failure(let error):
// error
case .success(let videos):
// handle video list
}
}

getVideos 사용할 수 있는 파라메터는 다음과 같습니다.

필드설명
page가져올 동영상의 페이지 번호
size가져올 동영상의 개수
userID사용자 ID. 지정 사용자의 동영상만 가져오고 싶을 때 사용
type동영상의 타입. (BROADCASTED : 라이브를 진행했거나 진행중인 동영상, UPLOADED : 라이브가 아닌 업로드한 동영상)
state동영상의 상태. (LIVE : 현재 라이브 중인 동영상, VOD : VOD로 볼 수 있는 동영상)

플레이어의 상태를 알고 싶으면 FFPlayerDelegate를 연결해줍니다.

// 라이브의 상태 리스너를 연결합니다.
player.delegate = self
extension PlayerViewController: FFPlayerDelegate {
// 관련 함수를 구현합니다.
}

FFPlayerDelegate의 함수는 다음과 같습니다.

함수설명
onPrepared라이브를 볼 준비가 되었음을 알려줍니다. prepare 함수 실행이 정상적으로 이루어지면 호출됩니다.
onStarted라이브를 볼 수 있을 때 호출됩니다.
onChatMessageReceived채팅 메시지가 들어오면 호출됩니다.
onChatStatReceived채팅 관련 통계 정보가 들어오면 호출됩니다.
onStopped라이브가 중단되면 호출됩니다.
omCompleted라이브가 끝난 경우 호출됩니다.
onError라이브 중 에러가 발생하면 호출됩니다.

3. 채팅 메시지 보내고 받기

라이브를 하면서 라이브를 보고 있는 사용자들과 함께 채팅 메시지를 주고 받을 수 있습니다. (메시지를 주고 받을 때 사용하는 메시지 타입에 대한 자세한 내용은 8.채팅 에서 확인하실 수 있습니다.)

채팅 메시지를 보내고 싶으면 player의 sendMessage 함수를 사용합니다.

// 메시지 보내기
val message = “안녕하세요.
player.sendMessage(text: message)

지정한 사용자에게만 메시지를 보내고 싶으면 'sendDM' 함수를 사용합니다.

// 메시지 보내기
val receiver = "100"
val message = “안녕하세요.
streamer.sendDM(receiver: receiver, text: message)

다른 사용자가 채팅 메시지를 보냈을 경우는 FFPlayerDelegate의 onChatMessageReceived 리스너로 채팅 메시지가 들어옵니다. 이 함수 안에서 받은 메시지에 대한 처리를 합니다.

override fun onChatMessageReceived(item: FFMessage) {
// 받은 메시지 처리
}