iOS용 플레이어 적용
- 인쇄
- PDF
iOS용 플레이어 적용
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
Classic/VPC 환경에서 이용 가능합니다.
iOS용 플레이어 적용에서는 Video Player Enhancement iOS SDK를 활용하여 iOS용 Native 플레이어를 적용하고 설정하는 예제를 설명합니다.
참고
iOS SDK 예제를 실행하려면 Standard 요금제를 이용해야 하며 다음과 같은 환경이 요구됩니다.
- Xcode
- 외부와의 통신이 가능한 환경
플레이어 적용
플레이어를 적용하는 방법은 다음과 같습니다.
Xcode를 실행해 주십시오.
추가하려는 프로젝트의 Targets > General 메뉴를 차례대로 클릭해 주십시오.
Framework, Libraries, and Embedded Content에 'NCPlayerSDK.xcframework'를 Embed & Sign 타입으로 추가해 주십시오.
사용할 VC에 NCPlayerSDK를 불러와 주십시오.
Class를 생성한 후 NCPlayerView를 참조해 주십시오.
View의 Class를 PlayerView로 지정해 주십시오.
플레이어 설정
플레이어를 설정하는 방법은 다음과 같습니다.
다음 코드를 적용하여 VC에 NCPlayerView Class를 초기화해 주십시오.
class PlayerView:NCPlayerView{} class ViewController: UIViewController { // view와 연결 @IBOutlet weak var playerView: PlayerView? }
override func viewDidAppear
를 생성한 후 다음 코드를 적용해 주십시오.참고- NCPlayerView 객체가 만들어진 상태에서만 메소드를 호출할 수 있습니다.
- Bundle ID는 콘솔에 등록한 앱 패키지 ID와 동일해야 합니다.
var defaultBackground: UIColor? = .white func updateBackgroundColor() { if UIDevice.current.orientation.isLandscape { self.view.backgroundColor = .black } else { self.view.backgroundColor = defaultBackground } } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) defaultBackground = self.view.backgroundColor updateBackgroundColor() } override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { updateBackgroundColor() } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) // SDK 초기화 // 라이선스 키 입력 let licenseKey = "{사용자의 라이선스 키}" // 플레이어 옵션 입력(콘솔에서 만들어진 스크립트 옵션 사용) let playerOptions = """ { "playlist":[ { "file":"https://pdeubxscnimo10174288.cdn.ntruss.com/hls/uqyCPUeJ1Ne8ml9OtPsizg__/shorts24/j5IXBfIJ83893893_shorts,1080,720,480,p.mp4.smil/master.m3u8", "poster":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/ 202211/083fff831d8904cd9d9c180e5c10be0b.png", "description":{ "title":"네이버 클라우드 테스트 영상1", "created_at":"2022.07.13", "profile_name":"네이버 클라우드", "profile_image":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202208/d127c8db642716d84b3201f1d152e52a.png" }, }, { "file":"https://pdeubxscnimo10174288.cdn.ntruss.com/hls/uqyCPUeJ1Ne8ml9OtPsizg__/shorts24/j5IXBfIJ83893893_shorts,1080,720,480,p.mp4.smil/master.m3u8", "poster":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202211/083fff831d8904cd9d9c180e5c10be0b.png", "description":{ "title":"네이버 클라우드 테스트 영상2", "created_at":"2022.07.13", "profile_name":"네이버 클라우드", "profile_image":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202208/d127c8db642716d84b3201f1d152e52a.png" }, }, { "file":"https://pdeubxscnimo10174288.cdn.ntruss.com/hls/uqyCPUeJ1Ne8ml9OtPsizg__/shorts24/j5IXBfIJ83893893_shorts,1080,720,480,p.mp4.smil/master.m3u8", "poster":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202211/083fff831d8904cd9d9c180e5c10be0b.png", "description":{ "title":"네이버 클라우드 테스트 영상3", "created_at":"2022.07.13", "profile_name":"네이버 클라우드", "profile_image":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202208/d127c8db642716d84b3201f1d152e52a.png" }, } ], "autostart":true, "muted":true, "keyboardShortcut":true, "controls":true, "ui":"pc", "controlBtn":{ "play":true, "fullscreen":true, "volume":true, "times":true, "pictureInPicture":true, "setting":true, }, "progressBarColor":"#ff0000", "controlActiveTime":3000, "startMutedInfoNotVisible":false, "aspectRatio":"16/9", "objectFit":"contain", "playRateSetting":[0.5,0.75,1,1.5,2], "seekingPreview":true, "autoPause":false, "repeat":false, "touchGestures":true, "descriptionNotVisible":false, } """ NCPlayer.shared.initialize(licenseKey: licenseKey) NCPlayer.shared.delegate = self playerView?.play(playerOptions) }
ViewController에 NCPlayerDelegate를 상속받은 후 함수를 생성해 주십시오.
다음 코드를 적용하여 이벤트를 설정해 주십시오.
// 네트워크 상태 여부 func NCPlayerNetworkStatus(state: String) { print("networkStatus: \(state)") } // 전체 화면 상태 여부 func NCPlayerOnFullscreenState(state: Bool) { print("onFullscreenState: \(state)") } // 가로 모드 상태 여부 func NCPlayerIsLandscape(state: Bool) { print("isLandscape: \(state)") } // 현재 재생 시간이 변경될 때 발생하는 이벤트 func NCPlayerOnTimeUpdate(data: Dictionary<String, Any>?) { if let data = data { print("time: ",data) } } // 이전 영상으로 넘어갈 때 발생하는 이벤트 func NCPlayerOnPrevTrack(data: Dictionary<String, Any>?) { if let data = data { print("NCPlayerOnPrevTrack: ",data) } } // 다음 영상으로 넘어갈 때 발생하는 이벤트 func NCPlayerOnNextTrack(data: Dictionary<String, Any>?) { if let data = data { print("NCPlayerOnNextTrack: ",data) } } // 컨트롤바 활성화 또는 비활성화 여부 func NCPlayerOnControlbarActive(active: Bool) { print("NCPlayerOnControlbarActive: ",active) } // 영상 재생 시도가 성공하면 발생하는 이벤트 func NCPlayerOnPlay() { print("NCPlayerOnPlay: play") } // 영상이 일시 정지되면 발생하는 이벤트 func NCPlayerOnPause() { print("NCPlayerOnPause: pause") } // 재생이 끝까지 완료되었을 때 발생하는 이벤트 func NCPlayerOnEnd() { print("NCPlayerOnEnd: end") } // 캡처 상태 여부 func NCPlayerIsCaptured(state: Bool) { print("NCPlayerIsCaptured: \(state)") } // 녹화 상태 여부 func NCPlayerIsRecording() { print("녹화") } // 전체 화면 상태 OFF func NCPlayerOnFullscreenOff() { print("NCPlayerOnFullscreenOff: Off") } // 전체 화면 상태 ON func NCPlayerOnFullscreenOn() { print("NCPlayerOnFullscreenOn: On") } // 전체 화면 여부 true or false func NCPlayerOnFullscreen(state: Bool?) { if let state = state { print("NCPlayerOnFullscreen: \(state)") } }
이 문서가 도움이 되었습니까?