iOS
iOS SDK로 고객사 iOS 앱에
보안 플레이어를 붙입니다
Minimum Deployment 13.0부터 지원합니다. 앱은 메서드 하나로 기본 플레이어 화면을 띄우고, 자막·화면 속 화면·셀룰러 데이터 같은 재생 조건은 설정 구조체 하나로 정합니다. 수강생 화면, Xcode 준비 단계, 기본값 검토표를 차례로 정리했습니다.
최종 수정
수강생이 iOS 앱에서 보는 것
기본 플레이어 화면은 Android와 같은 배치를 쓰고, 화면 크기 모드 수와 북마크 편집 방법만 다릅니다.
-
Controls
기본 플레이어 화면
위쪽에 종료·타임바·메뉴·화면 속 화면 버튼, 가운데에 회전 잠금·구간 반복·트랙 설정·배속 버튼, 아래쪽에 화면 잠금과 이동 버튼이 있습니다. 화면 크기는 aspectFit(기본), aspectFill, fill 세 가지입니다.
-
Dual Subtitles
자막 두 개 동시 표시
자막의 모드를 showing으로 지정하면 두 개 이상을 함께 띄웁니다. 원문과 번역 자막을 같이 보여 줘야 하는 어학 강의에 맞습니다. showing이 하나도 없으면 autoSelect 자막 중 목록 맨 앞의 하나가 나옵니다.
-
Picture in Picture
화면 속 화면
기본으로 허용되고, 앱이 백그라운드로 가면 자동으로 시작됩니다. 화면 속 화면 자막은 실험적 기능이라 기본값이 꺼짐입니다. 문서는 켜면 미디어 열기 지연이나 재생 품질 저하가 생길 수 있다고 안내합니다.
-
Keyboard
키보드와 제스처
왼쪽·오른쪽 방향키는 10초, 길게 누르면 1초씩 이동하고 스페이스 키는 재생과 일시 정지를 바꿉니다. 북마크는 목록에서 왼쪽으로 스와이프해 이름을 바꾸거나 삭제합니다.
개발팀이 준비할 다섯 단계
Xcode 기준입니다. Run destination을 My Mac으로 두면 실제 기기 없이 시험과 디버깅을 할 수 있습니다.
-
번들 아이디 등록
콘솔 설정 > 애플리케이션의 Bundle ID (Package name)에 Xcode TARGETS > General > Identity의 Bundle Identifier를 추가합니다. 등록하지 않은 앱은
appBundleNotRegistered오류를 받습니다. -
SDK 추가
General 탭의 Frameworks, Libraries, and Embedded Content에 제공받은 NPlayerSDK를 추가하고, Swift 파일에서 import NPlayerSDK로 불러옵니다.
-
Background Modes 켜기
Signing & Capabilities 탭에서 Background Modes를 추가하고 Audio, AirPlay, and Picture in Picture를 활성화합니다.
-
AppDelegate 설정
앱 시작 시
MediaPlaybackService.initialize(appId:)로 오디오 세션과 DRM 기본 설정을 합니다. 다운로드를 쓴다면 백그라운드 URL 세션 처리에setBackgroundCompletionHandler를 연결합니다. -
재생 호출
DrmConfiguration.Builder에 App ID, 사용자 ID, userData를 넣어 MediaItem에 붙이고
present(mediaItems:startIndex:configuration:)로 엽니다. userData는 Callback URL로 전달됩니다.
콘솔 설정부터 오픈 전 점검까지의 일정은 도입 실행 가이드, 웹 연동 방식과의 비교는 개발자 안내에 있습니다.
재생 화면 기본값과 검토 포인트
present()에 넘기는 MediaPlayerViewController.Configuration의 기본값입니다. 오른쪽 칸은 도입 회의에서 정해 둘 질문입니다.
| 설정 | 기본값 | 검토 포인트 |
|---|---|---|
| 백그라운드 재생 | false | 오디오 위주 강의만 켤지 |
| 셀룰러 데이터 | true | Wi-Fi 전용 재생이 필요한지 |
| 화면 속 화면 | true | 화면 속 화면을 막을 과정이 있는지 |
| 화면 속 화면 자막 | false (실험적) | 켜기 전에 재생 품질 시험 |
| 컨트롤러 숨김 | 5초 | 0초면 숨기지 않음 |
| 기본 배속 | 1.0 (0.1~4.0) | 과정별 시작 배속 |
| 앞뒤 이동 간격 | 10초 | 강의 길이에 맞는 간격 |
| 화면 방향 고정 | off | 가로·세로 고정 여부 |
| 자막 표시 | 영상 위에 출력, 맨 아래(1.0), 32픽셀, 흰색, 배경 없음 | 슬라이드 글씨를 가리는지 |
iOS SDK 기능 요약
영상별 정책은 MediaItem.Builder에서, 저장과 오프라인은 DownloadManager와 DRM 설정에서 다룹니다.
| 기능 | 내용 | 설정 |
|---|---|---|
| 시청 규칙 | 건너뛰기 제한, 배속 제한 | seekable, disablePlaybackRate |
| 구간 재생 | 원본의 시작·끝만 재생, 끝을 비우면 미디어 끝까지 | ClippingConfiguration |
| 자막 | 외부 자막 여러 개, 언어·라벨, 크기·색·배경·위치·여백 | SubtitleConfiguration |
| 화면 | 확대·축소 50~800%, 좌우·상하 반전 | zoomVideo, flipHorizontal |
| 재생 목록 | 차시 연속 재생, 이전 버튼은 3초 기준으로 이전 영상 또는 처음으로 | maxSeekToPreviousPosition |
| 다운로드 | 기본 3개 동시, 백그라운드에서도 진행, 자막 함께 저장 | DownloadManager |
| 오프라인 | 재생 기한 지정, 권한 없음과 기한 만료 오류 구분 | offlineAccessPeriod |
| 이어보기 | 마지막 재생 위치, 길이, 만료 일시 조회 | PlaybackInfoRepository |
배속, 구간 반복, 북마크 같은 공통 재생 기능은 플레이어 기능에 정리돼 있습니다.
이벤트와 오류 처리
이벤트는 클로저 방식(addEventHandler)과 프로토콜 방식(addEventListener) 중 앱 구조에 맞는 쪽으로 받습니다.
-
Playback Finish
재생 종료 데이터
playbackFinish는 미디어, 마지막 위치, 길이, 종료 원인(ended, error, userExited)을 함께 줍니다. 2026년 8월에 플레이어 창을 닫을 때 이 이벤트가 빠지던 문제가 고쳐졌고, onEnded에서도 마지막 재생 시간을 볼 수 있게 됐습니다. -
Subtitle Cue
자막 문장 데이터
표시 중인 자막 큐가 바뀔 때마다
textCueChange로 시작 위치, 종료 위치, 자막 텍스트를 받습니다. 앱에 스크립트 화면을 기획한다면 이 데이터부터 검토해 보세요. -
Errors
오류 18종
MediaPlayerError는 라이선스, 세션, 기기 제한, 동시 접속, 재생 제한, 오프라인 권한, 셀룰러 차단, 화면 캡처 감지를 구분합니다. 기본 present() 구현은 오류 메시지를 알림으로 띄우고, 닫기를 누르면 플레이어 화면을 닫습니다.
녹화 차단은 2025년 7월에 개선됐고 2026년 7월에는 화면 속 화면 재생 중 처리가 보강됐습니다. 2026년 1월에는 디버깅 프록시 방어가 들어갔습니다. 보안 구조 전체는 보안 기능에서 확인하세요.
iOS 도입 FAQ
-
iOS 앱에서도 워터마크가 표시되나요?
iOS SDK 문서에는 워터마크 설정 항목이 없습니다. 워터마크 설정 구조는 Android SDK 문서에 있으니, iOS에도 워터마크가 필요한 과정이 있다면 도입 상담에서 운영 방식을 먼저 확인하세요.
-
시험 중에 미디어가 재생되지 않습니다.
문서 FAQ는 Destination을 My Mac으로 바꿔 보라고 안내하고, 그래도 안 되면 연락을 요청합니다. 파일을 찾을 수 없다는 오류는 폴더와 파일 이름의 대소문자를 맞추면 해결됩니다. 문의는 help@newin.co.kr로 보내 주세요.
-
Wi-Fi에서만 다운로드하게 할 수 있나요?
다운로드를 추가할 때 allowsCellularAccess를 false로 넘기면 셀룰러 데이터를 쓰지 않습니다. 스트리밍 재생은 Configuration의 같은 이름 설정으로 따로 정합니다.
-
iOS SDK는 얼마나 자주 업데이트되나요?
변경 이력에는 2024년 1월 첫 버전부터 2026년 8월까지 59건이 있고, 2026년에만 21건입니다. iOS 15 이하 다운로드 파일 재생 문제(2026년 5월), iOS 18 탐색 시 잦은 버퍼링(2026년 8월)처럼 OS 버전별 수정도 이력에 남습니다. PC 흐름은 Windows·macOS 페이지를 보세요.
PlaynPlay 도입을 위한
기술적 지원과 서비스를 제공합니다.
제품 문의부터 데모 시연까지, 모든 지원을 위해 세일즈 및 기술 지원 팀이 준비되어 있습니다.
-
제품 및 도입 문의
도입 범위, 일정, 견적을 상담합니다. 서비스 형태와 사용자 규모를 알려주시면 맞는 연동 방식과 보안 설정을 제안합니다.
-
Trial 신청
PlaynPlay의 기능을 먼저 테스트해 보세요. 트라이얼 기간 동안 귀사의 제품과 PlaynPlay를 연동하고 성능과 기능을 직접 검증할 수 있습니다.
-
PlaynPlay 기술 문의
SDK 연동, Callback URL 설계, DRM 패키징 중에 생기는 질문에 기술팀이 답합니다. 공개된 개발 문서와 샘플 프로젝트도 함께 확인하세요.
가이드
기능
플랫폼