네이티브 연동
소스라이브의 네이티브 플레이어 연동 가이드 입니다.
시스템 요구 사항
- 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 하고 초기화 함수 호출
Parameter | Type | Description |
---|---|---|
apiHost | enum | API Host 환경 설정 |
partnerId | String | 플레이어 사용을 위해 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
)
Params | Type | Description |
---|---|---|
viewController | UIViewController | |
broadcastId | String | 라이브 방송 ID or VOD ID |
token | String? | 회원 연동을 위한 Token ( 필요 시 사용 ) |
Updated 11 days ago