Guides

네이티브 연동

소스라이브의 네이티브 플레이어 연동 가이드 입니다.

시스템 요구 사항

  • iOS 13.0 이상
  • Xcode 11.0 이상
  • Swift 5 이상

네이티브 플레이어 설치

CocoaPods

SauceLive_iOS는 CocoaPods을 통해 설치할 수 있습니다. Podfile에 다음 라인을 추가하여 설치하세요.

pod 'SauceLiveKit', '~> 1.0.0'

Swift Package Manager

SauceLive_iOS는 Swift Package Manager를 통해서도 설치할 수 있습니다. Xcode에서 프로젝트를 열고, File > Swift Packages > Add Package Dependency...를 선택 후 레포지토리 URL을 입력하세요.

dependencies: [
    .package(url: "https://github.com/yourcompany/SauceLiveKit.git", from: "1.0.0")
]

그 다음, 원하는 버전의 SDK를 선택하고 프로젝트에 추가합니다.

네이티브 플레이어 초기화

❗️

사용 전 가장 먼저 추가 되어야 하는 코드 입니다.

SauceLiveKit를 AppDelegate에 Import 하고 초기화 함수 호출

ParameterTypeDescription
apiHostenumAPI Host 환경 설정
partnerIdString플레이어 사용을 위해 partnerId가 반드시 필요
import UIKit
import SauceLiveKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // SauceLiveKit 초기화 (.stage는 기본값, .prod 또는 .dev로 변경 가능)
        SauceLivePlayerClient.initInstance(partnerID: "파트너 아이디", apiHost: .stage)
        return true
    }
}

네이티브 플레이어 사용

SauceLivePlayerClient.getInstance() : BaseView

  • 라이브 플레이어 재생 및 UI 설정을 위해 필요한 객체

플레이어 사용이 필요한 곳에서 호출

import SauceLiveKit

class PlayerViewController: UIViewController {
    private var baseView: BaseView?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setupPlayer()
    }
    
    private func setupPlayer() {
        // 방송 ID와 사용자 토큰으로 플레이어 인스턴스 생성
        // broadcastID 형식: "파트너ID-방송ID"
        let broadcastID = "partner123-broadcast456"
        let userToken = "사용자인증토큰" // 선택사항, nil 가능
        
        // 플레이어 뷰 생성
        baseView = SauceLivePlayerClient.getInstance(
            broadcastID: broadcastID,
            token: userToken,
            viewController: self
        )
        
        // 플레이어 시작
        baseView?.startPlayer()
        
        // 이벤트 콜백 설정
        setupCallbacks()
    }
}

토큰 생성 가이드

이벤트 Callback 등록

private func setupCallbacks() {
    // 방송 정보 업데이트 콜백
    baseView?.onBroadcastInfoUpdate = { [weak self] broadcastInfo in
        print("방송 제목: \(broadcastInfo.title)")
        print("현재 시청자 수: \(broadcastInfo.viewCount)")
    }
    
    // 에러 발생 콜백
    baseView?.onError = { [weak self] error in
        print("에러 발생: \(error.localizedDescription)")
    }
    
    // 닫기 버튼 클릭 콜백
    baseView?.onClose = { [weak self] in
        self?.dismiss(animated: true)
    }
    
    // 로그인 버튼 클릭 콜백
    baseView?.onLogin = { [weak self] in
        // 로그인 화면으로 이동
        self?.presentLoginScreen()
    }
    
    // 쿠폰 클릭 이벤트 콜백
    baseView?.onCouponEvent = { [weak self] urlString in
        if let urlString = urlString, let url = URL(string: urlString) {
            UIApplication.shared.open(url)
        }
    }
}

플레이어 UI 설정

📘

플레이어 UI는 컨피그에서 설정할 수 있습니다.


플레이어 재생

SauceLivePlayerClient.getInstance(broadcastID: String, token: String?, viewController: self)

  • 라이브 플레이어 재생
SauceLivePlayerClient.getInstance(
            broadcastID: broadcastID,
            token: userToken,
            viewController: self
        )
ParamsTypeDescription
viewControllerUIViewController
broadcastIdString라이브 방송 ID or VOD ID
tokenString?회원 연동을 위한 Token ( 필요 시 사용 )