Classes

The following classes are available globally.

  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerLicense : NSObject
    
    /**
     * 라이센스 인증 요청 (서버)
     * @note
     * 라이센스 인증 완료후 플레이어의 온/오프라인 재생 가능
     * 라이센스 인증을 선행하지 않으면 플레이어 재생을 할 수 없음
     * @param license 라이센스
     * @param completion 결과 콜백, 실패시 StarPlayerError return
     */
    + (void)authTheLicenseAtServer:(NSString *)license completion:(void(^)(BOOL isSuccess, StarPlayerError* error))completion;
    @end

    Swift

    class StarPlayerLicense
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerContentModel : NSObject <NSCopying>
    
    @property(nonatomic, strong)    NSString        *contentUrl;        //컨텐츠 경로 (저장경로 또는 스트리밍의 경우 원본 경로)
    @property(nonatomic, strong)    NSString        *originalUrl;       //원본 경로(cnd url), Event와 SCMS 기능 사용시 정보 전송용으로 필요, Event(begin_content,playing_content,end_content) 파라메터 항목 중 content_url에 해당, SCMS 파라메터 항목 중 url에 해당)
    @property(nonatomic, strong)    NSString        *contentId;         //컨텐츠 id, Event와 SCMS 기능 사용시 정보 전송용으로 필요
    @property(nonatomic, strong)    NSString        *contentToken;      //컨텐츠용 보안토큰
    @property(nonatomic, strong)    NSString        *userId;            //사용자 id, Event와 SCMS 기능 사용시 정보 전송용으로 필요
    @property(nonatomic, strong)    NSString        *spkId;             //spk id (drm packaging 된 파일의 key, 영상 decrypt를 위해 필요)
    
    @property (nonatomic, assign)   NSUInteger      beginTime;          //영상 시작 시간(이어보기)
    @property (nonatomic, assign)   NSUInteger      watchedPlayTime;    //누적 시청 시간, Event 전송시 이전 시청 시간을 더하기 위해 사용(play_time 파라메터에 해당, 동영상 총 영상 시간을 초과할 수 없음), 단위 : sec, millisec
    
    @property(nonatomic, strong)    NSString        *referer;           //referer url, SCMS를 사용하거나(정보 전송용) 접근할 cdn 서버에 referer 보안이 적용되었을 경우에 필요
    
    @property (nonatomic, assign)   BOOL            isHlsStreaming;    //hls스트리밍 여부(hls url에 m3u 또는 m3u8 확장자가 포함되어 있지 않다면 해당 변수를 통해 hls스트리밍 여부를 설정)
    
    //워터마크 텍스트
    @property (nonatomic, strong)   NSString        *wmText;            //워터마크 텍스트
    @property (nonatomic, strong)   NSString        *wmTextColor;       //워터마크 텍스트 컬러, RGBA(16진수)
    @property (nonatomic, assign)   NSUInteger      wmTextSize;         //워터마크 텍스트 사이즈
    //워터마크 이미지
    @property (nonatomic, strong)   NSData          *wmImage;           //워터마크 이미지 데이터
    //워터마크 기타 속성
    @property (nonatomic, strong)   NSString        *wmHorizontalAlign; //워터마크 수평 정렬(.LEFT, .CENTER, .RIGHT, .RANDOM)
    @property (nonatomic, strong)   NSString        *wmVerticalAlign;   //워터마크 수직 정렬(.TOP, .CENTER, .BOTTOM, .RANDOM)
    
    //트래커
    @property (nonatomic, strong)   NSString        *tracker;           //트래커 데이터  ex)'5:101,804:812,949:1038' (재생된 구간 정보)
    
    @end

    Swift

    class StarPlayerContentModel
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerError : NSObject <NSCopying>
    
    @property (nonatomic, strong) NSString              *message;
    @property (nonatomic, assign) StarPlayerErrorCode   code;
    
    - (instancetype)initWithCode:(StarPlayerErrorCode)code message:(NSString*)message;
    @end

    Swift

    class StarPlayerError
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerHLSAlternativeMedia : NSObject
    
    @property (nonatomic, strong, readonly) NSString    *type;          //미디어 타입(video, audio)
    @property (nonatomic, strong, readonly) NSURL       *uri;           //미디어 경로
    @property (nonatomic, strong, readonly) NSString    *groupId;       //미디어 group id
    @property (nonatomic, strong, readonly) NSString    *language;      //미디어 언어, ex)kr
    @property (nonatomic, strong, readonly) NSString    *name;          //미디어 이름
    
    - (instancetype)initWithData:(id)data;
    
    @end

    Swift

    class StarPlayerHLSAlternativeMedia
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerHLSStream : NSObject
    
    @property (nonatomic, strong, readonly) NSString        *resolution;      //해상도, ex)640x480
    @property (nonatomic, assign, readonly) int             baseResolution;  //기준 해상도 height, ex)480
    @property (nonatomic, assign, readonly) NSInteger       bandwidth;        //네트워크 대역폭
    @property (nonatomic, strong, readonly) NSString        *codec;           //비디오&오디오 코덱, ex)avc1.64002a,mp4a.40.2
    @property (nonatomic, strong, readonly) NSString        *audioGroupId;    //오디오 그룹아이디
    @property (nonatomic, strong, readonly) NSURL           *uri;             //media playlist uri
    
    - (instancetype)initWithData:(id)data;
    
    /*
     * 오디오 stream 여부
     */
    - (BOOL)isAudioStream;
    
    @end

    Swift

    class StarPlayerHLSStream
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerScmsBlock : NSObject
    
    @property (nonatomic, strong) NSString                  * _Nullable message;
    @property (nonatomic, assign) StarPlayerScmsBlockCode   code;
    
    @end

    Swift

    class StarPlayerScmsBlock
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerView : UIView
    
    #pragma mark - player
    @property (nonatomic, weak, nullable) id<StarPlayerViewDelegate> delegate;        //target delegate
    
    @property (nonatomic, readonly) StarPlayerOpenState openState;      //플레이어 준비 상태
    @property (nonatomic, readonly) StarPlayerPlayState playState;      //플레이어 재생 상태
    
    /**
     * 비디오 layer
     * @note 
     * 비디오 영상이 출력되는 layer
     * PlayerStateReadyToPlay 상태 이후에 값이 셋팅됨
     */
    @property (nonatomic, readonly) CALayer * _Nullable videoLayer;
    
    /**
     * 플레이어 재생 가능 시간
     * @note
     * 단위 : sec, millisec
     * @see millisecModeEnabled
     */
    @property (nonatomic, readonly) NSTimeInterval playerDuration;
    
    /**
     * 플레이어 현재 재생 시간
     * @note
     * 단위 : sec, millisec
     * @see millisecModeEnabled
     */
    @property (nonatomic, readonly) NSTimeInterval playerCurrentTime;
    
    /**
     * 플레이어 배속 설정
     * @note
     * 범위 : 0.5이상 ~ 2이하
     * PlayerStatePlaying 상태에서만 배속 설정 가능
     * eventEnabled이 true일 경우 playing_content 이벤트 전송 (배속 정보 전송)
     * @see eventEnabled */
    @property (nonatomic, readwrite) CGFloat rate;
    
    /**
     * 플레이어 재생 여부 */
    @property (nonatomic, readonly) BOOL isPlaying;
    
    /**
     * 플레이어 버퍼링 여부 */
    @property (nonatomic, readonly) BOOL isBuffering;
    
    /**
     * 기본 플레이어 사용여부
     * @note
     * 플레이어가 중지 상태(PlayerStateStopped) 일 때 변경 가능
     * true 인 경우 : currentAudioDelay 사용불가
     * false 인 경우 :  captureFrameWithTime 사용불가
     * @see captureFrameWithTime
     * @see currentAudioDelay */
    @property (nonatomic, readwrite) BOOL basicPlayerEnabled;
    
    /**
     * 낮은 대기 시간 사용 여부(서브플레이어 전용)
     * @note
     * 버퍼를 가져오는 시간이 짧아 스트리밍 로딩 속도 향상
     * 단, 네트워크 상태가 불안정할 경우 끊김 현상이 발생하여 스트리밍 안정성에 문제가 발생할 수 있음
     * (해당 옵션 사용시 LTE 이상 네트워크 속도  권장)
     *
     * playState가 StatePlayerStateStarting 이상이면 플레이어 reload
     * @see basicPlayerEnabled */
    @property (nonatomic, readwrite) BOOL lowLatancyEnabled;
    
    /**
     * 오디오 지연시간 (millisec)
     * @note
     * 오디오 싱크가 맞지 않을 때 사용
     * 기본 플레이어는 지원하지 않음
     * @see basicPlayerEnabled */
    @property (nonatomic, readwrite) NSInteger currentAudioDelay;
    
    /**
     * 플레이어 이어보기(재생 시작 위치)
     * @note
     * 단위 : sec, millisec
     * OpenStateReady 상태 일때 값 설정 가능
     * @see millisecModeEnabled */
    //@property (nonatomic, readwrite) NSUInteger beginTime DEPRECATED_MSG_ATTRIBUTE("Use setPlayerContentModel instead of beginTime.");
    
    /**
     * 누적 시청 시간
     * @note
     * 단위 : millisec
     * 동영상 PlayerDuration을 초과할 수 없음
     * Event 시간 계산에 사용 (play_time, play_time2) */
    @property (nonatomic, readonly) NSUInteger watchedPlayTime;
    
    /**
     * 플레이어 볼륨크기 (범위 0~1) */
    @property (nonatomic, readonly) CGFloat outputVolume;
    
    /**
     * 플레이어 화면 종횡비 설정
     * @note
     * 원본화면, 꽉찬화면, 16:9화면, 4:3화면 */
    @property (nonatomic, readwrite) StarPlayerAspectRatio aspectRatio;
    
    /**
     * 밀리 세컨드 모드 활성화 여부
     * @note
     * 플레이어가 millisec 단위로 동작 (기본 설정은 sec)
     * 플레이어가 중지 상태(PlayerStateStopped) 일 때 변경 가능 */
    @property (nonatomic, readwrite) BOOL millisecModeEnabled;
    
    /**
     * 플레이어 백그라운드 재생 활성화 여부
     * @note
     * pictureInPictureEnabled가 true이면 backgroundPlaybackEnabled는 true 변경됨 (pip가 활성화 되면 백그라운드 재생  자동 활성화)
     * @see pictureInPictureEnabled*/
    @property (nonatomic, readwrite) BOOL backgroundPlaybackEnabled;
    
    /**
     * 미러링 & 화면 캡쳐 차단 여부
     * @note
     * 플레이어가 중지 상태(PlayerStateStopped) 일 때 변경 가능 */
    @property (nonatomic, readwrite) BOOL mirroringGuardEnabled;
    
    /**
     * 플레이어 전용 워터마크 활성화 여부 */
    @property (nonatomic, readwrite) BOOL watermarkEnabled;
    
    /**
     * 플레이어 Audio 전용 Equalizer Animation (mp3 전용) 활성화 여부 */
    @property (nonatomic, readwrite) BOOL mP3EqualizerAnimationEnabled;
    
    /**
     * 플레이어 구간 반복 모드 활성화 */
    @property (nonatomic, readwrite) BOOL rangeRepeatEnabled;
    
    /**
     * 플레이어 구간 반복 자동 활성화
     * @note
     * 구간 반복 자동 재생
     * false : 구간 끝에 도달시 pause됨 */
    @property (nonatomic, readwrite) BOOL rangeRepeatAutoPlayEnabled;
    
    /**
     * 구간반복 최소 시간 */
    @property (nonatomic, readwrite) NSUInteger rangeRepeatMinTime;
    /**
     * 구간반복 최대 시간 */
    @property (nonatomic, readwrite) NSUInteger rangeRepeatMaxTime;
    
    /**
     * 플레이어 구간 반복 모드 Min, Max 시간 설정
     * @param minTime 최소 시간
     * @param maxTime 최대 시간 */
    - (void)setRangeRepeatMinTime:(NSUInteger)minTime maxTime:(NSUInteger)maxTime;
    
    /**
     * 플레이어 open
     * @note
     * 플레이어 실행에 필요한 준비작업 (라이센스 검증 등)
     * 기존에 라이센스 인증을 완료한 상태라면 다운로드된 미디어 파일은 오프라인에서도 재생가능 (스트리밍 재생은 해당x)
     * 온라인 상태에서는 서버에 라이센스 인증을 요청하여 상태를 갱신함
     * StarPlayerLicense class의 authTheLicenseAtServer 호출의 선행 없이도 해당 함수의 호출로 플레이어 재생 가능
     *
     * 라이센스 검증 실패 : 에러 발생 (playerEventOccurred)
     * 라이센스 검증 성공 : OpenStateIdle -> OpenStateReady 상태 변경
     * @see starPlayerView:playerEventOccurred:withEventMethod:
     * @see StarPlayerError
     * @param license 라이센스 코드*/
    - (void)open:(NSString *_Nonnull)license;
    
    /**
     * 플레이어 재생에 필요한 StarPlayerContentModel 을 설정
     * @note
     * OpenStateReady & PlayerStateStopped 상태일 때 변경 가능
     * @param content 플레이어 재생 정보 */
    - (void)setPlayerContentModel:(StarPlayerContentModel *_Nonnull)content;
    
    /**
     * 플레이어 자원 할당 해제
     * @note
     * 플레이어의 자원 해제
     *  - viewWillDisappear, viewDidDisappear에서 해당 함수를 호출할 경우 자원 해제가 안될 수 있음, 반드시 플레이어 자원 해제 완료후  ViewController dissmiss 호출을 권장
     *
     * 자원 할당 해제 플로우
     *  - playState > PlayerStateStopped :  stop(영상 정지) -> 이벤트 전송(EndContnet) -> scms 전송(disconnect) -> 자원 해제 -> completion 호출
     *  - playState == PlayerStateStopped :  자원 해제 -> completion 호출
     *
     * 자원 할당 해제 타임아웃 ->  2 sec
     *  - 이벤트 또는 scms 전송 지연 고려
     *  - 전송이 지연될 경우 타임아웃 처리(데이터 소실될 수 있음)
     *
     * @param completion 완료 블록 */
    - (void)free:(void (^_Nullable)(void))completion;
    
    /**
     * 플레이어 재생
     * @note
     * eventEnabled 'true'이고 PlayerStateReadyToPlay 상태이면 begin_content 이벤트 전송
     * @see eventEnabled */
    - (void)play;
    
    /**
     * 플레이어 일시정지
     * @note
     * eventEnabled 'true'일 경우 playing_content 이벤트 전송
     * @see eventEnabled */
    - (void)pause;
    
    /**
     * 플레이어 중지
     * @note
     * eventEnabled 'true'일 경우 end_content 이벤트 전송
     * @see eventEnabled */
    - (void)stop;
    
    /**
     * 뒤로가기 (seek to left)
     * @note
     * 단위 : sec, millisec
     * @see millisecModeEnabled
     * @param skipTime 건너뛸 시간
     * @param completion 완료 콜백 */
    - (void)backward:(NSUInteger)skipTime completion:(void (^_Nullable)(BOOL finished, BOOL isMoveToTheRepeatMinPosition))completion;
    
    /**
     * 앞으로가기 (seek to right)
     * @note
     * 단위 : sec, millisec
     * @see millisecModeEnabled
     * @param skipTime 건너뛸 시간
     * @param completion 완료 콜백 */
    - (void)forward:(NSUInteger)skipTime completion:(void (^_Nullable)(BOOL finished, BOOL isMoveToTheRepeatMinPosition))completion;
    
    /**
     * 플레이어 시간 이동
     * @note
     * 단위 : sec, millisec
     * @see millisecModeEnabled
     * @param seekTime 건너뛸 시간
     * @param completion 완료 콜백 */
    - (void)seekToTime:(NSUInteger)seekTime completion:(void (^_Nullable)(BOOL finished, BOOL isMoveToTheRepeatMinPosition))completion;
    
    /**
     * 동영상 현재 프레임 이미지 추출 (비트맵)
     * @note
     * 기본 플레이어 전용
     * 라이브스트리밍 : 추출 가능
     * default : 480x320
     * @see basicPlayerEnabled
     * @param size 썸네일 추출 크기(width, height)
     * @param completion 완료콜백(썸네일 이미지 반환) */
    - (void)captureCurrentFrame:(CGSize)size completion:(void (^_Nullable)(CGImageRef _Nullable image))completion;
    
    /**
     * 동영상 프레임 이미지 추출 (비트맵)
     * @note
     * 스트리밍 : 버퍼 데이터가 있을 경우만 썸네일 추출가능 (현재 재생위치의 썸네일 추출 권장)
     * 라이브스트리밍 : 추출 불가
     * default : 480x320
     * @see millisecModeEnabled
     * @param time 영상 추출 시간 (sec, millisec)
     * @param size 썸네일 추출 크기(width, height)
     * @param completion 완료콜백(썸네일 이미지 반환) */
    - (void)captureFrameWithTime:(NSUInteger)time size:(CGSize)size completion:(void (^_Nullable)(CGImageRef _Nullable image))completion;
    
    
    #pragma mark - HLS (기본 플레이어만 지원)
    @property (nonatomic, readonly) NSArray<StarPlayerHLSStream*>* _Nonnull hlsStreamList;   //streamList at MasterPlaylist
    
    /**
     * HLS MasterPlaylist stream 중에서 하나의 stream만 선택하여 영상 재생
     * @note
     * Stream은 MasterPlaylist에서 #EXT-X-STREAM-INF 태그에 해당함
     * @param stream 선택하여 재생할 stream
     */
    - (void)selectHLSVideoStream:(StarPlayerHLSStream *_Nonnull)stream;
    
    /**
     * HLS MasterPlaylist Alternative Media중에 하나의 Media를 선택하여 비디오 또는 Audio를 변경
     * @note
     * Media의 종류는 Audio, Video 두가지가 존재
     * Media는 MasterPlaylist에서 #EXT-X-MEDIA 태그에 해당함
     */
    - (void)selectHLSAlternativeMedia:(StarPlayerHLSAlternativeMedia *_Nonnull)media;
    
    /**
     * HLS 영상 '자동' 모드 활성화
     * @note
     * xStream list가 2개 이상 존재하면 자동 모드 활성화
     * @return 활성화 성공 여부 (이미 활성화 되어 있거나 활성화 할 수 없는 환경이면 return 'NO')
     */
    - (BOOL)activateHlsAutoStream;
    
    /**
     * HLS 오디오 '기본' 모드 활성화
     * @note
     * 선택된 오디오를 초기 상태로 원복
     * @return 활성화 성공 여부 (이미 활성화 되어 있거나 활성화 할 수 없는 환경이면 return 'NO')
     */
    - (BOOL)activateHlsDefaultAlternativeAudio;
    
    #pragma mark - StarPlayer PIP (기본 플레이어만 지원)
    /**
     * PictureInPicture(PIP) 활성화 여부
     * @note
     * default : NO
     * pictureInPictureEnabled가 true이면 backgroundPlaybackEnabled는 true 변경됨 (pip가 활성화 되면 백그라운드 재생  자동 활성화)
     * 기본 플레이어 및 지원되는 기기에 한해서만 (pictureInPictureSupported)
     * @see backgroundPlaybackEnabled
     * @see pictureInPictureSupported*/
    @property (nonatomic, readwrite) BOOL pictureInPictureEnabled;
    
    /**
     * PictureInPicture(PIP) skip버튼 비활성화 여부
     * @note
     * deafalut: NO
     * forward, backward skip 활성화 비활성화 가능
     * ios 14.0 이상만 지원 */
    @property (nonatomic, readwrite) BOOL pictureInPictureSkipDisabled API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
    
    /**
     * 디바이스 PictureInPicture(PIP)  지원 여부
     * @note
     * 기본 플레이어만 지원 */
    @property (nonatomic, readonly, getter=isPictureInPictureSupported) BOOL pictureInPictureSupported;
    
    /**
     * PictureInPicture(PIP) 활성화 여부
     * @note
     * 기본 플레이어만 지원 */
    @property (nonatomic, readonly, getter=isPictureInPictureActive) BOOL pictureInPictureActive;
    
    /**
     * PictureInPicture(PIP) 현재 사용 가능 여부
     * @note
     * 기본 플레이어만 지원 */
    @property (nonatomic, readonly, getter=isPictureInPicturePossible) BOOL pictureInPicturePossible;
    
    /**
     * PictureInPicture(PIP) 시작
     * @note
     * 기본 플레이어만 지원 */
    - (void)startPictureInPicture;
    
    /**
     * PictureInPicture(PIP) 중지
     * @note
     * 기본 플레이어만 지원 */
    - (void)stopPictureInPicture;
    
    /**
     * PIP start stop toggle
     * @note
     * 기본 플레이어만 지원 */
    - (void)toggleStartStopPictureInPicture;
    
    /**
     * PIP에 StarplayerSubtitleView 설정
     * @note
     * StarplayerSubtitleView를 추가하면 PIP에 자막 표시 가능
     * 기본 플레이어만 지원
     */
    -(void)setupSubtitleViewInPIP:(UIView *_Nullable)subtitleView;
    
    #pragma mark - 비디오 줌인&줌아웃
    /**
     * 비디오 Zoom 활성화 여부
     * @note
     * UIPinchGestureRecognizer에 starPlayerHandlePinch: 를 연동해줘야 기능을 사용할 수 있음
     */
    //@property (nonatomic, readwrite) BOOL videoZoomEnabled;
    
    /**
     * Zoom 최대 scale 값 (default:5.0)
     * @note
     * 1미만의 값은 설정할 수 없음
     */
    //@property (nonatomic, readwrite) double videoZoomMaxScale;
    
    /**
     * Zoom 상태의 비디오 layer 초기화
     * @note
     *  1.scale 1상태로 초기화
     *  2.이동된 layer 원복
     */
    //- (void)resetZoomedVideoLayer;
    
    #pragma mark - player gesture (드래그, 비디오 줌인&줌아웃)
    /**
     * 플레이어 Pan gesture selector
     * 화면 드래그 상태 delegate 호출
     * @see starPlayerView:screenDragState:draggingValueChanged: */
    - (IBAction)starPlayerHandlePan:(UIPanGestureRecognizer *_Nullable)panGestureRecognizer;
    /**
     * 플레이어 Pinch gesture selector
     * 화면 핀치 상태 delegate 호출
     * @see 추가 예정*/
    - (IBAction)starPlayerHandlePinch:(UIPinchGestureRecognizer *_Nullable)pinchGestureRecognizer;
    
    #pragma mark - 학습이력 Event
    /**
     * playing_content(Event) 전송 interval
     * @note
     * 단위 : sec
     * default : 180초
     * 플레이어가 재생중 일 때만 이벤트 스케줄러가 동작
     * 플레이어가 중지 상태(PlayerStateStopped) 일 때 변경 가능
     * @see eventEnabled */
    @property (nonatomic, readwrite) uint16_t eventPlayingContentInterval;
    
    /**
     * 플레이어 학습이력 이벤트 전송 활성화 여부
     * @note
     * 학습이력 이벤트(begin_content, playing_content, end_content)
     * begin_content : 컨텐츠 재생 준비 완료 됐을 때 전송 (PlayerStateReadyToPlay)
     * playing_content : 일시정지(PlayerStatePause), 배속 변경, 재생중(eventPlayingContentInterval 주기)  전송
     * end_content : 컨텐츠 재생 정지 또는 완료시 전송 (PlayerStateStop)
     *
     * 플레이어가 중지 상태(PlayerStateStopped) 일 때 변경 가능
     * @see eventPlayingContentInterval  */
    @property (nonatomic, readwrite) BOOL eventEnabled;
    
    /**
     * 미전송 데이터 개수 조회
     * @note 플레이어가 재생 준비가 되었을 경우 작동 (OpenStateReady) */
    - (int)selectMissedEventDataCount;
    
    /**
     * 미전송 이벤트 데이터 전체 삭제
     * @note
     * 미전송 데이터가 전송이 안되고 많이 쌓여 있을 경우 부하가 발생할 수 있으므로 삭제할 수 있는 함수 제공
     * 플레이어가 재생 준비가 되었을 경우 동작 (OpenStateReady) */
    - (void)deleteAllMissedEventData;
    
    @end

    Swift

    class StarPlayerView
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerPackager : NSObject
    /**
     * DRM 패키징 여부
     * @note 저장된 파일의 drm 패키징 여부 (다운로드 파일에 한함)
     */
    + (BOOL)isLocalSPKFile:(NSURL*)localFilePath;
    
    /**
     * DRM 패키징 여부 (다운로드, 스트리밍 파일)
     * @note
     * 영상 파일 offset 0부터 35바이트 크기의 데이터를 입력하면 drm 패키징 여부를 확인할 수 있음
     */
    + (BOOL)isSPKFileWithHeader:(NSData*)data;
    
    /**
     * File packager open
     * @note
     * 영상 파일 drm 적용 용도
     * file packaging이 완료되면 close 함수를 호출 해야함
     * @param fileSavePath 파일 저장 경로 (경로+파일명)
     * @return 파일 데이터 offset (파일 데이터가 없을 경우 0), 파일 offset 정보로 이어 받기 가능
     */
    - (unsigned long long)openWithPath:(NSURL*)fileSavePath;
    
    /**
     * File packager close
     */
    - (void)close;
    
    /**
     * File packaging(DRM) 후  파일 쓰기
     * @param data packaging 할 데이터
     * @param offset 데이터 offset(파일 이어받기 가능)
     */
    - (void)dataPackagingAndAppend:(NSData*)data offset:(unsigned long long)offset;
    
    @end

    Swift

    class StarPlayerPackager
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerSliderView : UIView
    
    @property (nonatomic, weak) id<StarPlayerSliderViewDelegate> delegate;        //target delegate
    
    @property (nonatomic, readonly) BOOL isDraging;     //프로그레스 드레그 여부
    
    /**
     * 플레이어 재생가능 시간
     * @param duration 시간
     */
    - (void)setPlayDuration:(CGFloat)duration;
    /**
     * 구간반복 모드
     * @param mode 여부
     */
    - (void)setRepeatMode:(BOOL)mode;
    
    /**
     * 구간반복 최소 value
     */
    - (CGFloat)getRepeatMinValue;
    
    /**
     * 구간반복 최대 value
     */
    - (CGFloat)getRepeatMaxValue;
    
    /**
     * slider 드래그 여부
     */
    - (BOOL)isSliderDragging;
    
    /**
     * 재생 프로그레스 변경
     * @param value 프로그레스 값
     */
    - (void)changePlayProgressWithValue:(CGFloat)value;
    /**
     * 다운로드 프로그레스 변경 (스트리밍)
     * 스트리밍중 다운로드된 버퍼용량을 프로그레스로 표시
     * @param value 프로그레스 값
     */
    - (void)changeDownloadProgressWithValue:(CGFloat)value;
    
    /**
     * 프로그레스 초기화
     * 재생,다운로드,구간반복 프로그레스 초기화
     */
    - (void)resetSliderProgress;
    
    #pragma mark - Progress
    /**
     * 프로그레스 height 조정
     * @param height 높이값
     */
    - (void)setProgressViewHeight:(CGFloat)height;
    
    /**
     * 재생 프로그레스 색상 조정
     * Default color (EC3C43)
     * @param color 색상
     */
    - (void)setProgressPlayViewColor:(UIColor*)color;
    
    /**
     * 다운로드 프로그레스 색상 조정 (스트리밍)
     * Default color (AAAAAA)
     * @param color 색상
     */
    - (void)setProgressDownloadViewColor:(UIColor*)color;
    
    /**
     * 백그라운드 프로그레스 색상 조정
     * Default color (FFFFFF)
     * @param color 색상
     */
    - (void)setProgressBackgroundViewColor:(UIColor*)color;
    
    #pragma mark - Thumb
    /**
     * 재생 Thumb image 변경
     * @param image default image
     * @param pressedImage pressedImage
     */
    - (void)setThumbPlayImage:(UIImage*)image pressedImage:(UIImage*)pressedImage;
    /**
     * 구간반복 Thumb Min image 변경
     * @param image default image
     * @param pressedImage pressedImage
     */
    - (void)setThumbRepeatMinImage:(UIImage*)image pressedImage:(UIImage*)pressedImage ;
    /**
     * 구간반복 Thumb Max image 변경
     * @param image default image
     * @param pressedImage pressedImage
     */
    - (void)setThumbRepeatMaxImage:(UIImage*)image pressedImage:(UIImage*)pressedImage;
    
    @end

    Swift

    class StarPlayerSliderView
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerSubtitleView : UIView
    
    @property(nonatomic, weak)      id<StarPlayerSubtitleDatasource> datasource;    //target datasource
    
    /**
     * initialize with url
     * @param url 자막 url
    */
    - (instancetype)initWithContentUrl:(NSURL*)url;
    
    /**
     * initialize with url, language
     * @param url 자막 url
     * @param languageCode 언어코드
     */
    - (instancetype)initWithContentUrl:(NSURL*)url
                            asLanguage:(NSString*)languageCode;
    
    /**
     * 자막 url 및 언어코드 설정
     * @param url 자막 url
     * @param languageCode 언어코드
     */
    - (void)setContentUrl:(NSURL*)url asLanguage:(NSString*)languageCode;
    
    //subtitle controller
    - (void)start;
    - (void)pause;
    - (void)stop;
    
    /**
     * 자막 텍스트 clear
     */
    - (void)clearOfSubtitleText;
    
    /**
     * 지막 폰트 크기 설정
     * @param size 자막 폰트 크기
     */
    - (void)setFontSize:(int)size;
    
    /**
     * 자막 폰트 색상 설정
     * @param color 자막 폰트 색상
     */
    - (void)setFontColor:(NSString*)color;
    
    /**
    * 자막 수직 정렬 (default bottom)
    * @param verticalAlign top, bottom
    */
    - (void)setVerticalAlign:(SubtitleVerticalAlign)verticalAlign;
    @end

    Swift

    class StarPlayerSubtitleView
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface StarPlayerUtils : NSObject
    
    //디바이스 아이디
    + (NSString*)getDeviceID;
    
    /**
     * X-Streaming-Checksum 값 생성
     * @note
     * 위변조 방지 용도로 사용함
     *
     * 파라메터는  Http Range 값을 String 형태로 전달하면 됨. (Http Range)
     * ex)  bytes=0-                (0부터 끝까지)
     *    bytes=100-200      (100부터 200까지)
     *    bytes=시작-끝
     * @param range range String (다운로드 구간 또는 영역)
     */
    + (NSString*)generateXStreamingCheckSum:(NSString*)range;
    
    @end

    Swift

    class StarPlayerUtils