PallyCon FPS(FairPlay Streaming) iOS SDK 가이드

PallyCon FPS iOS SDK는 iOS용 미디어 서비스 앱을 개발할 때 Apple의 FairPlay Streaming DRM을 쉽게 적용할 수 있게 해주는 제품입니다. 본 문서는 SDK에 포함된 라이브러리와 샘플 프로젝트의 사용법에 대해 설명합니다.

FPS 클라이언트와 연동되는 PallyCon 멀티 DRM 서비스에 대한 설명은 라이선스 콜백 API 또는 라이선스 토큰 API를 참고하시기 바랍니다. SDK 사용과 관련한 기술 문의는 헬프데스크 사이트를 이용해 주시기 바랍니다.

SDK 제품은 PallyCon 클라우드 상용 서비스 가입 시 신청할 수 있으며, 신청한 SDK는 PallyCon 어드민 사이트의 다운로드 페이지에서 다운로드 받을 수 있습니다.


지원 환경

  • iOS 9.0 이상
  • ARC(Automatic Reference Counting) 적용 필요
  • 본 SDK는 Xcode 8에서 테스트 되었으며, 시뮬레이터에서 동작하지 않습니다.

선행 사항

  • FairPlay Streaming DRM을 사용하려면 다음과 같은 과정이 필요합니다.
    • PallyCon 사이트 Admin Site에 가입하여 Site ID, Site Key를 발급 받아야 합니다.
    • Apple에서 FPS Deployment Package를 발급 받아 FPS Certification 파일서버 개인키, 그리고 FPS App Secret 키를 INKA로 보내주셔야 합니다.
  • 위 과정이 완료되지 않으면 PallyCon FPS SDK 샘플로 FPS HLS 콘텐츠 재생이 불가합니다.

NOTE:

APPLE에서 받은 키가 PallyCon 사이트에 등록되면, PallyCon 패키저에 Site ID, Site Key를 설정해 MP4 원본을 FPS HLS 콘텐츠로 패키징할 수 있습니다.

프로젝트 설정

다음과 같은 과정으로 PallyCon FPS SDK를 개발 프로젝트에 추가할 수 있습니다.

  1. PallyCon 어드민 사이트에서 다운로드 받은 PallyCon FPS iOS SDK 파일의 압축을 풉니다.
  2. lib 폴더에 포함된 PallyConFPSSDK.framework 라이브러리를 프로젝트에 추가합니다.
    • 프로젝트 TARGETS의 General 탭에 Linked Frameworks and Libraries에 프레임웍을 추가합니다.
    • 프로젝트 TARGETS의 Build Settings 탭에 Framework Search Paths 프레임웍 경로를 넣습니다.
  3. 프로젝트 TARGETS의 Build Settings 탭에 Enable BitcodeNo로 설정합니다.

퀵 스타트

PallyCon FPS SDK를 이용하여 FPS HLS 콘텐츠를 스트리밍 재생하거나 다운로드하는 방법은 아래 코드와 같습니다.

콘텐츠 재생

// 1. PallyConFPS SDK 객체 생성합니다.
do {
    let pallyconSdk: PallyConFPS = try PallyConFPSSDK(siteId:"Site ID", siteKey:"Site Key", fpsLicenseDelegate:"PallyConFPSLicenseDelegate")
} catch PallyConSDKException.DatabaseProcessError(let message) {
    print("PallyConFPSSDK initilize failed.\n\(message)")
}

// 2. FPS 콘텐츠가 재생 되기 전에 FPS 콘텐츠 정보를 설정합니다.
pallyconSdk.prepare(urlAsset:"Asset", userId:"User ID", contentId:"ContentID", optionalId:"optionalId")
// 콘텐츠 정보가 아닌 토큰을 사용하는 경우, 토큰 정보를 설정하여 아래 메소드를 호출합니다.
// pallyconSdk.prepare(urlAsset:"Asset", userId:"User ID", contentId:"ContentID", token:"Token String")
// CustomData 을 직접 사용하는 경우, CustomData 정보를 설정하여 아래 메소드를 호출합니다.
// pallyconSdk.prepare(urlAsset:"Asset", customData:"CustomData")

콘텐츠 다운로드

// 1. PallyConFPS SDK 객체 생성합니다.
do {
    let pallyconSdk: PallyConFPS = try PallyConFPSSDK(siteId:"Site ID", siteKey:"Site Key", fpsLicenseDelegate:"PallyConFPSLicenseDelegate")
} catch PallyConSDKException.DatabaseProcessError(let message) {
    print("PallyConFPSSDK initilize failed.\n\(message)")
}

// 2. DownloadTask 객체 생성합니다.
// 콘텐츠 다운로드를 위해 DownloadTask 객체를 생성해서 사용합니다.
// DownloadTask 는 반드시 PallyConFPS 객체를 사용해서 생성해야만 합니다.
let downloadTask = pallyconSdk.createDownloadTask(url:"Content URL", userId:"User ID", contentId:"Content ID", optionalId:"Order ID", downloadDelegate:"PallyConFPSDownloadDelegate")
/**
콘텐츠 정보가 아닌 토큰을 사용하는 경우, 토큰 정보를 설정하여 아래 메소드를 호출합니다.
let downloadTask = pallyconSdk.createDownloadTask(url:"Content URL", userId:"User ID", contentId:"Content ID", token:"Token String", downloadDelegate:"PallyConFPSDownloadDelegate")
*/

// 3. 콘텐츠 다운로드 시작
// 이전에 다운로드 중단된 콘텐츠일 경우, 해당 콘텐츠를 이어서 받습니다.
downloadTask.resume()

// 4. 콘텐츠 다운로드 취소 (필요 시)
downloadTask.cancel()

CustomData 정보 보기

// 1. PallyConFPS SDK 객체를 생성합니다.
do {
    let pallyconSdk: PallyConFPS = try PallyConFPSSDK(siteId:"Site ID", siteKey:"Site Key", fpsLicenseDelegate:"PallyConFPSLicenseDelegate")
} catch PallyConSDKException.DatabaseProcessError(let message) {
    print("PallyConFPSSDK initilize failed.\n\(message)")
}

// 2. CustomData 정보 가져오기
do {
    let customDataInfo: PallyConTokenInfo = try pallyconSdk?.getCustomDataInfo(from:"CustomData")
} catch PallyConSDKException.InvalidParameter() {
    print("PallyConFPSSDK invalid customData")
}

Token 정보 보기

// Token 정보 가져오기
let tokenInfo: PallyConTokenInfo = PallyConFPSSDK.getTokenInfo(from:"Token String")

API 레퍼런스 문서

PallyCon FPS iOS SDK에서 제공하는 모든 API에 대한 설명은 SDK 파일에 포함된 API 레퍼런스 문서를 참고하시기 바랍니다.


results matching ""

    No results matching ""