Example
플레이어를 띄우고 이벤트를 처리하는 가장 작은 예제입니다. AppDelegate 초기화와 플레이어를 담을 화면 하나로 구성됩니다.
최소 통합 예제
플레이어를 띄우고 이벤트를 처리하는 가장 작은 예제입니다.
구성은 파일 두 개입니다 — 초기화용 AppDelegate 와 플레이어를 담을 화면 하나.
📘 이 예제는 게스트 시청 기준입니다. 회원으로 시청하려면
token 에 사용자 토큰을 넣으세요. → 3. 사용자 인증하기
① AppDelegate 초기화
앱이 시작될 때 한 번만 호출합니다.
Swift
import UIKit import SauceSDK @main class AppDelegate: UIResponder, UIApplicationDelegate { func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { SauceClient.initInstance( appKey: "발급받은 appKey", apiHost: .stage ) SauceClient.setLivePlayerCallback(self) return true } }
❗ appKey 를 소스 코드에 그대로 적지 마세요 — 저장소에 올라가면 유출됩니다. 빌드 설정이나 서버에서 주입하는 방식을 쓰고, 위 예제의 문자열은 어디에 넣는지 보여 주기 위한 자리 표시입니다.
② 플레이어 화면 전체 코드
이 화면을 모달이나 내비게이션으로 띄우면 플레이어가 실행됩니다.
Swift
import UIKit import SauceSDK class LivePlayerVC: UIViewController { private let broadcastID: String private let userToken: String? private var player: SauceLivePlayerClient? init(broadcastID: String, userToken: String? = nil) { self.broadcastID = broadcastID self.userToken = userToken super.init(nibName: nil, bundle: nil) } required init?(coder: NSCoder) { fatalError() } override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .black // 초기화·권한 확인 — 통과하지 못하면 앱이 종료됩니다 guard SauceClient.isInitialized, SauceClient.isLiveEnabled() else { dismiss(animated: true) return } // 콜백은 AppDelegate 에 한 번 등록해 두었습니다 player = SauceClient.startLivePlayer(broadcastID: broadcastID, token: userToken, from: self) } }
Swift — 앱 전체 콜백
extension AppDelegate: LivePlayerCallback { func onLoginRequest(context: LoginRequestContext) { presentLoginScreen { SauceClient.updateAccessToken($0) } } func onClose(reason: PlayerCloseReason) { topViewController?.dismiss(animated: true) } func onProductClick(info: ProductClickInfo) -> Bool { openProductScreen(info.url); return true } func onCouponDownload(couponCode: String) { issueCoupon(couponCode) } }
Swift — 띄우는 쪽
let vc = LivePlayerVC(broadcastID: "어드민에서 확인한 라이브 ID") vc.modalPresentationStyle = .fullScreen present(vc, animated: true)
예제에서 짚어둘 것
-
1콜백을
AppDelegate에 한 번 등록했습니다. 앱 전체 콜백이므로 플레이어마다 다시 붙이지 않습니다. -
2
apiHost: .stage로 두었습니다 — 연동·테스트 단계라 테스트 서버를 씁니다. 실제 방송을 보려면.prod로 바꿉니다. -
3초기화·권한을
guard로 확인했습니다. 없으면getInstance에서 앱이 종료됩니다.
Updated 6 days ago
Did this page help you?
