import UIKit
import SafariServices
import NCPlayerSDK
class ViewController: UIViewController, NCPlayerDelegate, SFSafariViewControllerDelegate {
@IBOutlet weak var currentTimeText: UITextField!
@IBOutlet weak var playerView: NCPlayerView?
...
//라이선스키
let licenseKey: String = "{라이선스키}"
...
}
import UIKit
import SafariServices
import NCPlayerSDK
class ViewController: UIViewController, NCPlayerDelegate, SFSafariViewControllerDelegate {
@IBOutlet weak var currentTimeText: UITextField!
@IBOutlet weak var playerView: NCPlayerView?
...
// 스크린 캡쳐 및 화면녹화 방지 여부
let enableCaptureProtect = true
...
}
DRM 콘텐츠 이용시 Backend 서버에서 설정을 받아 처리하세요.
import UIKit
import SafariServices
import NCPlayerSDK
class ViewController: UIViewController, NCPlayerDelegate, SFSafariViewControllerDelegate {
@IBOutlet weak var currentTimeText: UITextField!
@IBOutlet weak var playerView: NCPlayerView?
...
// case 1 서버에서 플레이어 설정 및 재생 설정 -------
// 플레이 예제 : https://vpe.sgrsoft.com/api/playUrl
// One Click Multi DRM : https://vpe.sgrsoft.com/api/drmTest
// Pallycon DRM : https://vpe.sgrsoft.com/api/drmTestPallycon
// FairPlay DRM은 반드시 서버설정(case 1) 방식으로 필요
// 서버에서 playerOptions 가져오기 예제
fetchPlayerOptions("https://vpe.sgrsoft.com/api/playUrl")
...
}
import UIKit
import SafariServices
import NCPlayerSDK
class ViewController: UIViewController, NCPlayerDelegate, SFSafariViewControllerDelegate {
@IBOutlet weak var currentTimeText: UITextField!
@IBOutlet weak var playerView: NCPlayerView?
...
// case 2 플레이어에서 직접 옵션 및 재생 설정 -------
//플레이어 옵션 (콘솔에서 만들어진 스크립트 옵션을 사용)
let playerOptions = """
{
"playlist":[
{
"file":"{동영상 URL}",
"poster":"{포스터 URL}",
"description":{
"title":"네이버클라우드 테스트 영상",
"created_at":"2024.07.13",
"profile_name":"네이버클라우드",
"profile_image":"{프로필 이미지 URL}"
}
},
],
"autostart":true,
"muted":true,
"progressBarColor":"#ff0000",
"aspectRatio":"16/9",
}
"""
playerView?.play(playerOptions)
...
}
ViewController.swift#/code/ios/viewcontroller