- 인쇄
Live api
- 인쇄
라이브 설치하기
https://pub.dev/packages/shoplive_player/install
Depend on it
Run this command:
With Flutter:
$ flutter pub add shoplive_player
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
shoplive_player: ^1.6.5
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Import it
Now in your Dart code, you can use:
import 'package:shoplive_player/shoplive_player.dart';
라이브 실행하기
void play({required ShopLivePlayerData data})
를 통해 라이브 상세화면을 재생합니다.
ShopLivePlayerData
Property name | Type | Description |
---|---|---|
campaignKey | String | 재생할 동영상의 캠페인(방송) 키 (필수) |
keepWindowStateOnPlayExecuted | Boolean | 재생 중인 플레이어의 실행 모드(pip, fullscreen)을 유지한 상태로 재생을 시작할 지 여부. 기본값(false)
|
referrer | String? | 진입경로 통계를 측정할 수 있는 파라미터 |
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.play(data: data);
라이브 종료하기
void close()
를 통해 라이브 상세화면을 종료합니다.
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.close();
라이브 Preview 실행하기
void showPreview({required ShopLivePlayerPreviewData data})
를 통해 라이브 Preview를 실행할 수 있습니다.
ShopLivePlayerPreviewData
Property name | Type | Description |
---|---|---|
campaignKey | String | 재생할 동영상의 캠페인(방송) 키 (필수) |
useCloseButton | Boolean | 닫기 버튼을 활성화. 기본값(false) |
referrer | String? | 진입경로 통계를 측정할 수 있는 파라미터 |
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.showPreview(data: data);
공유하기 주소 설정하기
void setShareScheme({required String shareSchemeUrl})
를 통해 공유하기 주소를 설정할 수 있습니다.
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.setShareScheme(shareSchemeUrl: "https://shoplive.cloud/");
PIP 전환하기
void startPictureInPicture()
를 통해 전체 화면 모드에서 PIP 화면 모드로 전환합니다.
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.startPictureInPicture();
전체화면 전환하기
void stopPictureInPicture()
를 통해 PIP 화면 모드에서 전체 화면 모드로 전환합니다.
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.stopPictureInPicture();
음소거 시작하기
void setMuteWhenPlayStart({required bool isMute})
를 통해 음소거 시작할 수 있습니다.
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.setMuteWhenPlayStart(isMute: false);
상품, 배너 정보 전달 기능
Stream<ShopLiveHandleNavigation> handleNavigation
를 통해 라이브에서 상품, 배너 등을 선택했을 때, 선택한 상품 또는 배너 정보를 전달합니다.
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.handleNavigation.listen((data) {
_showToast("handleNavigation : ${data.url}");
});
쿠폰 정보 전달 기능
Stream<ShopLiveHandleDownloadCoupon> handleDownloadCoupon
를 통해 라이브에서 쿠폰을 선택했을 때, 선택한 쿠폰정보를 전달합니다.
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.handleDownloadCoupon.listen((data) {
_showToast("handleDownloadCoupon : ${data.couponId}");
});
방송 상태 전달 기능
Stream<ShopLiveChangeCampaignStatus> changeCampaignStatus
를 통해 라이브에서 방송 상태가 변경되었을 때 전달 합니다.
ShopLiveChangeCampaignStatus
Parameter name | Type | Description |
---|---|---|
campaignStatus | String | campaignStatus: |
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.changeCampaignStatus.listen((data) {
_showToast("changeCampaignStatus : ${data.campaignStatus}");
});
캠페인 정보 전달 기능
Stream<ShopLiveCampaignInfo> campaignInfo
를 통해 라이브에서 캠페인 정보를 확인 할 수 있습니다.
ShopLiveCampaignInfo
Parameter name | Type | Description |
---|---|---|
campaignInfo | JSONObject | campaignInfo 예) |
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.campaignInfo.listen((data) {
_showToast(
"campaignInfo : ${const JsonEncoder().convert(data.campaignInfo)}");
});
팝업 Custom 기능
Stream<ShopLiveHandleCustomAction> handleCustomAction
를 통해 팝업에서 선택 이벤트를 custom
으로 지정하고, 팝업을 선택했을 때 팝업 정보를 전달합니다. 팝업의 id
, type
, payload
를 전달합니다.
ShopLiveHandleCustomAction
Parameter name | Type | Description |
---|---|---|
id | String | 쿠폰 또는 배너 ID |
type | String | 쿠폰 또는 배너 type |
payload | String | 사용자가 정의한 payload |
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.handleCustomAction.listen((data) {
_showToast(
"handleCustomAction : ${data.id}, ${data.type}, ${data.payload}");
});
플레이어 상태 정보 전달 기능
Stream<ShopLiveChangedPlayerStatus> changedPlayerStatus
를 통해 라이브 플레이어의 상태를 전달 받습니다.
ShopLiveChangedPlayerStatus
Parameter name | Type | Description |
---|---|---|
status | ShopLivePlayStatus | 플레이어 상태 (created, destroyed) |
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.changedPlayerStatus.listen((data) {
_showToast("changedPlayerStatus: ${data.status}");
});
Message callback 확인 기능
Stream<ShopLiveReceivedCommand> receivedCommand
를 통해 메세지를 전달 받은 내용을 확인 할 수 있습니다.
ShopLiveReceivedCommand
Property name | Type | Description |
---|---|---|
command | String | Command 의 이름 |
data | Map<String, dynamic>? | 관련 추가 parameter |
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.receivedCommand.listen((data) {
_showToast(
"receivedCommand : ${data.command}, ${const JsonEncoder().convert(data.data)}");
});
로그 기능
Stream<ShopLivePlayerLog> log
를 통해 라이브 로그를 전달 받습니다.
ShopLivePlayerLog
Property name | Type | Description |
---|---|---|
name | String | Event 의 이름 |
feature | String | Event 의 종류 |
campaignKey | String? | 방송의 Unique Key |
parameter | Map<String, dynamic>? | 관련 추가 parameter |
late final _shopLivePlayerPlugin = ShopLivePlayer();
_shopLivePlayerPlugin.log.listen((data) {
_showToast(
"clickLog : ${data.name}, ${data.feature}, ${data.campaignKey}, ${const JsonEncoder().convert(data.payload)}");
});