2. 플레이어 실행하기
라이브 ID 하나로 플레이어를 띄웁니다. iOS 는 앱이 준 UIViewController 안에 자식으로 들어가므로 컨테이너 화면을 먼저 준비합니다.
컨테이너 화면에 띄워보기
iOS SDK 는 새 화면을 띄우지 않습니다. 컨테이너 화면(UIViewController)을 넘기면 플레이어가 그 안에 자식으로 들어갑니다.
콜백은 Event handler 의 SauceClient.setLivePlayerCallback 으로 앱 전체에 한 번 등록합니다.
Swift
SauceClient.startLivePlayer(broadcastID: "라이브 ID", token: nil, from: self)
플레이어별로 다른 콜백을 주거나 closePlayer() 로 직접 닫으려면 아래처럼 인스턴스를 만듭니다.
Swift
import SauceSDK class LivePlayerVC: UIViewController { private var player: SauceLivePlayerClient? override func viewDidLoad() { super.viewDidLoad() let player = SauceLivePlayerClient.getInstance( broadcastID: "라이브 ID", token: nil, // 게스트 모드 — 회원 연동은 다음 단계에서 viewController: self ) // ⚠️ 콜백을 먼저 등록한 뒤 startPlayer() 를 호출합니다 player.onClose = { [weak self] in self?.dismiss(animated: true) } player.startPlayer() self.player = player } }
⚠️ 콜백을
startPlayer() 보다 먼저 등록하세요 — 순서가 바뀌면 실행 직후에 발생한 이벤트를 놓칠 수 있습니다.
❗ 콜백을 등록하지 않으면 상품을 눌러도 아무 일도 일어나지 않습니다. 상품 클릭·장바구니·쿠폰·로그인은 앱이 콜백으로 받아 처리합니다. 화면 확인만 할 때는 이대로 두어도 되지만, 실제 연동은 3. 사용자 인증하기와 5. 상품 클릭 관리의 콜백까지 등록하세요.
⚠️ 인스턴스를 프로퍼티로 보관하세요 — 지역 변수에만 두면 화면이 유지되는 동안 해제될 수 있습니다.
closePlayer() 로 직접 닫을 때도 이 참조가 필요합니다.
실행 순서
호출 두 개로 끝나지만, 내부에서는 아래 순서로 진행됩니다.
화면이 뜨지 않을 때 어디까지 진행됐는지 가늠하는 데 도움이 됩니다.
-
1
getInstance가 SDK 초기화 상태와 라이브 사용 권한을 확인합니다. 초기화가 안 됐거나 라이브 기능이 비활성이면 여기서 중단됩니다. -
2
startPlayer가 플레이어를 컨테이너의 자식 화면으로 추가하고 컨테이너 크기를 그대로 채웁니다. -
3토큰을 확인합니다.
nil이면 게스트 계정을 자동 발급받습니다. -
4방송 정보를 받아 영상·채팅·상품 목록을 구성합니다. 이 단계에서 실패하면 시청자 화면에 오류가 표시되고 콘솔에 로그가 남습니다.
닫기
시청자가 플레이어의 닫기 버튼을 누르면 onClose 가 호출됩니다.
화면을 내리는 것은 앱이 해야 합니다. SDK 는 자기 자신만 정리합니다.
| 상황 | 설명 |
|---|---|
| 시청자가 닫기 버튼을 누름 | onClose 가 호출됩니다.앱이 dismiss 또는 popViewController 로 화면을 내립니다 |
| 앱이 직접 닫아야 함 | player.closePlayer() 를 호출합니다.플레이어가 정리되고 컨테이너에서 제거됩니다 |
| 방송을 열 수 없어 닫힘 | onClose(reason: .unavailable) 이 호출됩니다.비밀번호 입력 취소, 취소된 방송 등이 해당합니다 |
📘 화면 전환 방식은 앱이 정합니다. 컨테이너를 모달로 띄울지, 내비게이션으로 밀어 넣을지, 탭 안에 둘지에 따라 닫는 방법도 달라집니다.
플레이어가 안 뜰 때
순서대로 확인하세요. 대부분 앞의 두 가지입니다.
onError 를 등록해 두면 원인이 코드로 옵니다 — Error codes.
| 증상 | 확인할 것 |
|---|---|
| 화면이 비어 있다 | Xcode 콘솔에서 초기화 로그를 확인합니다. appKey 인증이 실패했을 수 있습니다 → 확인 방법 |
| 방송이 없다고 나온다 | apiHost 를 확인합니다. .stage 로 두면 테스트 서버에 붙으므로 실제 방송은 보이지 않습니다 |
| 진행 중인 방송이 안 보인다 | 라이브 ID 가 맞는지, 그 방송이 지금 송출 중인지 확인합니다 |
| 앱이 종료된다 | appKey 를 확인하세요. SauceClient.isLiveEnabled() 로 라이브 사용 권한을 볼 수 있습니다 |
라이브 ID 확인하기
라이브 ID 는 소스 어드민에서 확인합니다.
라이브를 편성한 뒤 라이브 송출 정보 확인에서 값을 복사해 broadcastId 에 그대로 전달하세요.
▲ 어드민 분석 > 라이브 > 상세 > 송출정보에서 라이브 ID를 확인·복사
📘 VOD 재생 — 종료된 방송을 다시 재생하려면 같은
broadcastId 자리에 VOD ID 를 전달합니다. 호출 방법은 동일합니다.
Updated 6 days ago
Did this page help you?
