Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »



Kollus SDK 개요

iOS용 KollusSDK는 iPhone 또는 iPad 기기에서 KollusPlayer를 생성하여 사용하기 위한 용도로 제작된 소프트웨어 개발키트(SDK)입니다. 본 SDK는 Cocoa Application의 UIView 형식을 기반으로 제작되었습니다. 따라서, SDK를 사용하기 위해서는 UIView 형식의 클래스인 KollusPlayerView를 생성하여 화면에 서브뷰 형태로 삽입하여 사용합니다. Application은 생성된 KollusPlayerView에 포함된 메서드들을 사용하여 동영상 재생과 관련된 일련의 작업을 수행할 수 있습니다.

본 문서에서는 특별히 설명이 필요한 작업 흐름들에 대해서만 설명합니다. KollusSDK에 포함된 나머지 메서드들에 대한 설명은 iOS API References 에서 확인해주세요.

Kollus SDK의 구조

KollusStorage와 KollusPlayerView 클래스로 구성됩니다.

  • KollusStorage는 다음과 같은 일련의 작업들을 관장합니다.

    • KollusSDK 인증처리

    • 컨텐츠 정보 획득

    • 컨텐츠 다운로드

    • 컨텐츠 삭제

    • 캐시 데이터 관리

  • KollusPlayerView는 컨텐츠를 재생하기 위해서 필요한 일련의 작업들을 관장합니다.

    • 컨텐츠 재생 (스트라이밍, 다운로드)

    • 북마크 정보 획득

    • 벅마크 정보 추가, 삭제

컨텐츠 재생 가이드

  1. KollusStorage 생성 및 가동

  2. KollusPlayerView 생성

  3. 생성된 KollusPlayerView에 기 생성된 KollusStorage를 설정


KollusStorage 생성

KollusStorage 객체 생성과 동작 과정

  1. App은 KollusStorage의 init 메서드를 사용하여 KollusStorage를 생성합니다.

  2. KollusStorage는 생성된 id를 반환합니다.

  3. App은 KollusStorage의 setApplicationKey 메서드를 사용하여 인증키를 설정합니다.

  4. App은 KollusStorage의 setApplicationBundleID 메서드를 사용하여 Bundle ID를 설정합니다.

  5. App은 KollusStorage의 setApplicationExpireDate 메서드를 사용하여 키의 유효기간을 설정합니다.

  6. App은 KollusStorage의 startStorage 메서드를 호출합니다.

  7. KollusStorage는 설정된 3, 4, 5의 값들을 참조하여 인증절차를 진행후 인증이 정상적으로 처리된 경우 YES를 인증에 실패한 경우 NO를 반환합니다.

​K​ollusStorage는 application key, BundleID, expire date를 사용하여 인증과정을 거칩니다. 3가지 값들 중 하나 이상의 값이 발급된 정보와 다른 경우 KollusSDK를 사용할 수 없습니다.


컨텐츠 다운로드

KollusStorage를 사용하여 컨텐츠를 다운로드 받는 흐름을 설명합니다.

  1. App은 KollusStorage의 setDelegate 메서드를 사용하여 다운로드 상태를 전달받을 델리게이트를 설정합니다.

  2. App은 KollusStorage의 loadContentURL 메서드를 사용하여 다운로드 받을 컨텐츠의 URL을 설정합니다.

  3. KollusStorage는 전달 받은 URL에 해당하는 mediaContentKey를 반환합니다.

  4. App은 KollusStorage의 downloadContent 메서드를 사용하여 컨텐츠 다운로드를 시작합니다.

  5. KollusStorage는 컨텐츠 다운로드가 시작되면 다운로드 상태의 변화가 있을 때마다 1.에서 설정한 델리게이트에 포함된 kollusStorage:downloadContent:error: 델리게이트 메서드를 호출합니다.

컨텐츠 다운로드 과정은 KollusStorage의 인증과정이 정상적으로 완료된 경우에만 사용할 수 있습니다. 스토리지 생성 과정을 먼저 수행하고, 정상적인 결과를 얻은 경우에 컨텐츠 다운로드를 시도하시기 바랍니다.


다운로드 컨텐츠 삭제

KollusStorage를 사용하여 다운로드 된 컨텐츠를 삭제하는 흐름을 설명합니다.

  1. APP은 KollusStorage에 removeContent:error: 메서드를 사용하여 특정 mediaContentKey에 해당하는 컨텐츠 삭제를 요청합니다. 이때 전달하는 파라미터는 KollusContent.mediaContentKey를 사용합니다.

  2. KollusStorage는 해당 컨텐츠의 삭제 결과를 APP으로 전송합니다. (YES or NO)

캐시 데이터 삭제

KollusStorage를 사용하여 생성된 캐시 데이터를 삭제하는 흐름을 설명합니다.

  1. APP은 KollusStorage에 removeCacheWithError 메서드를 사용하여 현재 관리되고 있는 캐시 데이터의 삭제를 요청합니다.

  2. KollusStorage는 캐시 데이터의 삭제 결과를 APP으로 전송합니다. (YES or NO)

r​emoveCacheWithError 메서드를 호출하는 시점에 스트리밍 재생중인 컨텐츠가 존재할 경우 해당 컨텐츠에 대한 캐시데이터는 삭제되지 않습니다.


KollusPlayerView

컨텐츠 재생 (스트리밍)

Kollus 서비스의 스트리밍 URL을 사용하여 컨텐츠를 스트리밍하는 흐름을 설명합니다.

  1. APP은 initWithContentURL 메서드를 사용하여 KollusPlayerView 객체를 생성합니다.

  2. KollusPlayerView 객체가 생성되면 생성된 객체 id를 반환합니다.

  3. APP은 화면 출력으로 사용할 UIView 객체에 addSubView 메서드를 사용하여 생성된 KollusPlayerView 객체를 삽입합니다.

  4. APP은 기 생성된 KollusStorage 객체를 setStorage 메서드를 사용하여 KollusPlayerView에 설정합니다.

  5. APP은 setDelegate 메서드를 사용하여 KollusPlayerView에 델리게이트를 설정합니다.

  6. APP은 prepareToPlayWithMode: 메서드를 사용하여 1.에서 입력된 정보에 해당하는 컨텐츠 재생을 위한 준비를 요청합니다.

  7. KollusPlayerView는 컨텐츠를 준비하는 작업이 완료되거나 에러가 발생한 경우 5.에서 설정된 델리게이트에 prepareToPlayWithError: 델리게이트 메서드를 호출하여 컨텐츠 재생준비 결과를 전송합니다.

  8. 컨텐츠 재생 준비가 완료된 경우 APP은 playWithError 메서드를 사용하여 컨텐츠 재생을 요청합니다.

  9. KollusPlayerView는 컨텐츠 재생을 시작하는 작업이 완료되거나 에러가 발생한 경우 5.에서 설정된 델리게이트에 playWithError: 델리게이트 메서드를 호출하여 컨텐츠 재생시작 결과를 전송합니다.

p​repareToPlayWithMode, playWithError 메서드는 async type의 메서드로 해당 메서드의 수행이 완료된 시점에 결과 값이 delegate로 전송됩니다. 따라서, 해당 메서드들의 수행 결과 확인이 필요한 경우에는 델리게이트로 설정된 객체에 다음과 같은 해당 델리게이트 메서드들을 미리 작성해 놓아야만 합니다.

  • kollusPlayerView:prepareToPlayWithError:

  • kollusPlayerView playWithError:

델리게이트 메서드 정의는 KolluPlayerDelegate.h 파일을 참고하시기 바랍니다.


컨텐츠 재생 (다운로드 컨텐츠)

다운로드 되어 있는 컨텐츠를 재생하는 흐름을 설명합니다.

  1. APP은 init 메서드를 사용하여 KollusPlayerView 객체를 생성합니다.

  2. KollusPlayerView 객체가 생성되면 생성된 객체 id를 반환합니다.

  3. APP은 생성된 화면 출력으로 사용할 UIView 객체에 addSubView 메서드를 사용하여 KollusPlayerView 객체를 삽입합니다.

  4. APP은 setMediaContentKey 메서드를 사용하여 재생하고자 하는 컨텐츠의 mediaContentKey를 KollusPlayerView에 설정합니다.

  5. APP은 기 생성된 KollusStorage 객체를 setStorage 메서드를 사용하여 KollusPlayerView에 설정합니다.

  6. APP은 setDelegate 메서드를 사용하여 KollusPlayerView에 델리게이트를 설정합니다.

  7. APP은 prepareToPlayWithMode 메서드를 사용하여 1.에서 입력된 정보에 해당하는 컨텐츠 재생을 위한 준비를 요청합니다.

  8. KollusPlayerView는 컨텐츠를 준비하는 작업이 완료되거나 에러가 발생한 경우 6.에서 설정된 델리게이트에 prepareToPlayWithError: 델리게이트 메서드를 호출하여 컨텐츠 재생준비 결과를 전송합니다.

  9. 컨텐츠 재생 준비가 완료된 경우 APP은 playWithError 메서드를 사용하여 컨텐츠 재생을 요청합니다.

  10. KollusPlayerView는 컨텐츠 재생을 시작하는 작업이 완료되거나 에러가 발생한 경우 6.에서 설정된 델리게이트에 playWithError: 델리게이트 메서드를 호출하여 컨텐츠 재생시작 결과를 전송합니다.

​p​repareToPlayWithMode, playWithError 메서드는 async type의 메서드로 해당 메서드의 수행이 완료된 시점에 결과 값이 delegate로 전송됩니다. 따라서, 해당 메서드들의 수행 결과 확인이 필요한 경우에는 델리게이트로 설정된 객체에 다음과 같은 해당 델리게이트 메서드들을 미리 작성해 놓아야만 합니다.

  • kollusPlayerView:prepareToPlayWithError:

  • kollusPlayerView playWithError:

델리게이트 메서드 정의는 KolluPlayerDelegate.h 파일을 참고하시기 바랍니다.


북마크 정보 획득

재생 중인 컨텐츠의 북마크 정보를 획득하는 흐름을 설명합니다.

  1. APP은 KollusPlayerView의 setBookmarkDelegate 메서드를 사용하여 북마크 관련 정보를 전달받을 델리게이트를 설정합니다.

  2. KollusPlayerView는 컨텐츠 초기화 과정에서 해당 컨텐츠의 북마크 데이터 유무에 따른 정보를 1.에서 설정한 델리게이트의 kollusPlayerView:bookmark:enabled:error: 메서드를 통해 전송합니다.

  3. 델리게이트로 전송되는 bookmark에는 NSArray형식으로 KollusBookmark가 포함됩니다.

북마크 정보 획득은 KollusPlayerView의 컨텐츠 재생준비 과정에서 처리됩니다. 따라서, setBookmarkDelegate 메서드는 컨텐츠 재생준비(prepareToPlayWithError)를 요청하기 이전에 호출해 주어야만 정상적인 결과를 얻을 수 있습니다.


북마크 정보 추가

재생 중인 컨텐츠의 사용자 북마크 정보를 추가하는 흐름을 설명합니다.

  1. APP은 KollusPlayerView의 addBookmark:value:error: 메서드를 사용하여 추가하고자 하는 북마크 정보를 전달하여 북마크 정보 추가를 요청합니다.

  2. KollusPlayerView는 전달받은 북마크 정보를 추가한 결과 값을 APP으로 반환합니다.

​K​ollusPlayerView는 사용자 북마크만 추가/삭제 할 수 있습니다. 인덱스 북마크는 강사용 북마크로 사용자가 추가/삭제할 권한이 없습니다.
사용자 북마크 추가 요청시 이미 동일한 position(시간값)의 북마크가 존재할 경우 기존의 북마크는 삭제되고, 새롭게 요청한 입력된 북마크 정보로 대체됩니다.


북마크 정보 삭제

재생 중인 컨텐츠의 사용자 북마크 정보를 삭제하는 흐름을 설명합니다.

  1. APP은 KollusPlayerView의 removeBookmark:error: 메서드를 사용하여 삭제하고자 하는 북마크 시간정보를 전달하여 북마크 정보 추가를 요청합니다.

  2. KollusPlayerView는 전달받은 북마크 정보를 삭제한 결과 값을 APP으로 반환합니다.

K​ollusPlayerView는 사용자 북마크만 추가/삭제 할 수 있습니다. 인덱스 북마크는 강사용 북마크로 사용자가 추가/삭제할 권한이 없습니다.

 

  • No labels