- 인쇄
API: ShopLive Preview
- 인쇄
Shoplive에서 제공하는 ShopLivePlayerPreview
컴포넌트를 통해서 프리뷰를 직접 구현할 수 있습니다.
class ViewController : UIViewController {
let preview = ShopLivePlayerPreview()
override func viewDidLoad() {
super.viewDidLaod()
self.view.addSubView(preview)
preview.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
preview.topAnchor.constraint(equalTo: self.topAnchor),
preview.leadingAnchor.constraint(equalTo: self.leadingAnchor),
preview.trailingAnchor.constraint(equalTo: self.trailingAnchor),
preview.bottomAnchor.constraint(equalTo: self.bottomAnchor)
])
setPreview()
}
func setPreview() {
preview.action( .initialize )
preview.action( .start(accessKey : "ACCESS_KEY", campaignKey : "CAMPAIGN_KEY", referrer : "REFERRER(optional)")
}
}
Action types
ShopLivePlayerPreview
의 명령을 호출하고 싶다면, .action(.{command})
를 통해서 호출할 수 있습니다.
preview.action( .play)
preview.action( .pause)
...
Case | Description |
---|---|
initialize |
|
start(accessKey : String campaignKey : String, referrer : String?) | accessKey와 CampaignKey를 주입하여 플레이어를 로딩합니다. |
setMuted(Bool) |
|
setReferrer(String?) | 방송을 추적할 수 있는 고유 식별자를 주입합니다. |
play | 방송을 재생합니다. |
pause | 방송을 정지합니다. |
stop | 방송을 정지하며, 플레이어를 초기화 시킵니다. |
close |
|
retry | 방송을 다시 실행시킵니다. |
setCornerRadius(CGFLoat) |
|
useCloseButton(Bool) |
|
setEnabledVolumeKey(Bool) |
|
setResizeMode(ShopLiveResizeMode) | 영상의 종횡비를 유지할 수 있습니다.(Default: |
setResolutionType(ShopLivePlayerPreviewResolution) | Preview의 해상도를 .LIVE 설정합니다. 혹은 .PREVIEW으로 설정합니다. (Default : .PREVIEW) |
Result types
ShopLivePlayerPreview
에서 발생하는 이벤트를 구독할 수 있습니다.
preview.resultHandler = { [weak self] result in
switch result {
case .log(name : let name, feature : let feature, campaignKey : let campaignKey, payload : let paylaod):
// handle data
.
.
.
}
}
Case | Description |
---|---|
log(name : String, feature : ShopLiveLog.feature, campaignKey : String, payload : [String : Any]?) | Shoplive Player의 이벤트 로그를 전달합니다. 이 정보는 Google Analytics 등의 분석 도구에서 사용할 수 있습니다. |
handleReceivedCommand(command : String, payload : [String : Any]?) | Shoplive iOS SDK의 WEB으로부터 수신된 명령어 정보를 전달합니다. |
avPlayerTimeControlStatus(AVPlayer.TimeControlStatus) |
|
avPlayerItemStatus(AVPlayerItem.Status) |
|
requestShowAlertController(UIAlertController) |
|
didChangeCampaignStatus(ShopLiveCampaignStatus) | 방송 상태가 변경되었을 때 변경된 방송 상태를 전달합니다. |
onError(code : String, message : String) | 방송 전 또는 방송 중 발생하는 오류 상황에 관한 메시지를 전달합니다. |
onSetUserName(payload : [String : Any]?) | 사용자 이름이 변경되었을 때 호출됩니다. |
handleShare(ShopLivePlayerStateData) | 방송 중 공유하기 버튼을 탭했을 때 호출 됩니다. |
didChangeCampaignInfo([String:Any]?) | 현재 방송에 관한 정보를 전달합니다. |
didChangeVideoDimension(CGSize) | 미리보기 화면의 가로 세로 비율을 얻을 수 있습니다. |
handleShopLivePlayerCampaign(ShopLivePlayerCampaign) | Shoplive의 방송 캠페인에 대한 정보를 받을 수 있는 handler입니다. |
handleShopLivePlayerBrand(ShopLivePlayerBrand) | Shoplive의 방송 브랜드에 대한 정보를 받을 수 있습니다. |