미리보기 구간 재생
원본 한 편으로
맛보기와 하이라이트를 만듭니다
클리핑은 재생할 미디어 정보에 시작 위치와 끝 위치를 적어 그 구간만 재생하게 하는 설정입니다. Agent(PlaynPlay App 실행)와 iOS SDK 문서에 설정 방법이 있습니다. 미리보기용 파일을 새로 자르지 않아도 되지만, 판매 경계로 쓸 때는 서버 쪽 권한 판단을 함께 설계하기를 권합니다.
최종 수정
설정은 시작과 끝, 두 값입니다
시작 시간은 반드시 넣고 끝 시간은 비워 둘 수 있습니다. iOS 문서는 끝 시간을 지정하지 않으면 미디어의 끝으로 정한다고 적고 있습니다.
| 항목 | Agent (PlaynPlay App) | iOS SDK |
|---|---|---|
| 넣는 곳 | playnplay.launch()에 넘기는 MediaItem의 clipping | MediaItem.Builder의 clippingConfiguration(_) |
| 시작 | startTime (숫자) | startTime (Duration, 필수, 초) |
| 끝 | endTime (숫자 또는 null) | endTime (Duration, 선택, 비우면 미디어 끝) |
| 값 읽기 | — | MediaItem.clippingConfiguration. MediaItem 속성은 Agent에서 설정한 값도 가져옵니다 |
| 문서 반영 | Agent 설정 문서의 MediaItem 항목 | 2025년 1월 23일 SDK에 미디어 클리핑 설정 추가 |
Agent 문서는 clipping 값의 단위를 따로 적지 않았습니다. 같은 문서에서 시작 시간(StartTime)과 북마크 위치는 초 단위로 적혀 있으니, 연동 시험 첫날 단위부터 확인하기를 권합니다.
구간 설정 예시
30분짜리 강의 한 편을 기준으로 잡은 예시 숫자입니다. 값은 초로 적었습니다.
| 목적 | startTime | endTime | 학습자가 보는 범위 |
|---|---|---|---|
| 맛보기 | 0 | 180 | 처음 3분 |
| 본론부터 맛보기 | 120 | 420 | 2:00~7:00, 인사말과 목차 안내를 건너뛴 5분 |
| 하이라이트 | 900 | 1080 | 15:00~18:00 |
| 후반부 복습 | 1200 | 비움 | 20:00부터 끝까지 |
| 1부·2부 나누기 | 0 / 900 | 900 / 비움 | 같은 원본을 두 차시로 운영 |
비슷해 보이는 설정과 구분하세요. 시작 시간(startTime)은 재생을 시작할 위치만 정하고 나머지 구간도 볼 수 있게 둡니다. 구간 반복(repeatRange)은 재생 중에 학습자나 앱이 거는 반복입니다. 클리핑은 재생을 열 때 볼 수 있는 범위 자체를 정합니다.
미리보기·맛보기·하이라이트 활용
아래는 운영 방식 제안입니다. 서비스의 판매 정책과 수강 규정에 맞게 골라 쓰세요.
-
Preview
강좌 소개 페이지 미리보기
소개 페이지의 재생 버튼에 앞부분 몇 분만 겁니다. 결제 전에 강사의 설명 방식과 화면 구성을 직접 보게 할 수 있습니다. 구매 버튼은 재생 영역 바로 옆에 두기를 권합니다.
학원·강의 판매 사례 보기 -
Sample Lesson
커리큘럼 맛보기 차시
목차에서 1차시 일부만 열어 둡니다. 원본이 같으므로 결제한 수강생에게는 같은 URL을 clipping 없이 열면 됩니다.
-
Highlight
특강·세미나 하이라이트
긴 녹화본에서 핵심 장면만 골라 홍보 페이지나 사내 공지에 붙입니다. 장면을 바꾸고 싶으면 숫자 두 개만 고칩니다.
유료 영상 서비스 사례 보기 -
Review
시험 전 복습 구간
복습 페이지에 강의별 핵심 구간만 모아 둡니다. 학습자는 처음부터 다시 돌려 볼 필요 없이 필요한 부분만 봅니다.
-
Orientation
사내 필수 교육 사전 안내
교육 공지 페이지에 첫 강의의 도입부만 걸어 두면, 직원이 수강 신청 전에 과정 분위기와 분량을 가늠할 수 있습니다.
기업 교육 사례 보기 -
B2B Demo
기관 영업용 샘플 계정
콘텐츠를 기관에 판매할 때 구매 담당자 계정에는 강좌마다 앞부분만 열어 줍니다. 전체 파일을 넘기지 않고 샘플을 보여 줄 수 있습니다.
편집본을 따로 만드는 방식과 비교
미리보기를 별도 파일로 잘라 올리는 방식과 운영 부담을 나란히 놓았습니다. 마지막 두 줄은 권한 설계와 연결되니 다음 단락까지 보고 고르세요.
| 비교 항목 | 편집본 파일 | 클리핑 설정 |
|---|---|---|
| 준비 작업 | 구간마다 잘라 인코딩한 뒤 DRM 패키징(ndrm-pkg)과 업로드를 다시 합니다 | 재생 정보에 시작·끝 값을 적습니다 |
| 구간 변경 | 파일을 다시 만들어 교체 | 숫자만 수정 |
| 저장 공간 | 편집본 수만큼 늘어남 | 원본 하나 |
| 재생 URL | 편집본마다 따로 관리 | 원본과 같은 URL |
| 권한 구분 | URL이 달라 서버가 구분하기 쉬움 | URL이 같아 서버 판단 규칙을 따로 설계 |
| 시청 기록 구분 | 콜백의 mediaUrl만으로 미리보기 시청이 구분됨 | mediaUrl이 같아 userData 표시로 구분 |
| 재생 환경 | 플랫폼과 관계없이 같은 파일 | 문서상 Agent와 iOS SDK에서 설정 |
플랫폼별 문서 기재 여부는 플랫폼 비교표, 영상 준비 작업은 콘텐츠 패키징 운영에 정리했습니다.
접근 권한 검사와 함께 설계합니다
clipping 값은 웹 페이지나 앱이 재생을 열 때 넣는 정보입니다. 미리보기를 유료 구간과 무료 구간의 경계로 쓴다면 아래 순서로 서버 판단을 함께 두기를 권합니다.
-
수강 상태로 실행 정보 결정
고객사 서버가 회원의 결제·수강 상태를 확인하고, 미수강자에게만 clipping을 넣은 MediaItem을 내려 줍니다. userData에 미리보기 여부를 실어 두면 콜백 기록을 나눠 보기 쉽습니다.
-
라이선스 발급 때 판단
접근 권한 검사(
CheckAccessRights)에는 mediaUrl, userId, userData, offline 값이 실려 오고, 서버는 Ok, Expired, NoRights, DeviceLimitExceeded 중 하나로 답합니다. 판단 근거는 웹 페이지가 보낸 값보다 서버의 회원·결제 기록에 두는 편이 안전합니다. -
미리보기는 다운로드 제외
Agent 설정에서 offlineAccessPeriod를 0으로 두면 오프라인 재생 권한 없이 열립니다. 다운로드 콘텐츠 요청은 offline이 true로 오므로, 미수강자의 이런 요청에는 NoRights로 답하는 규칙도 둘 수 있습니다.
-
재생 중 위치 확인
재생 진행 상태 보고(
NotifyPlaybackProgress)에는 현재 위치가 밀리초로 실립니다. 위치가 미리보기 끝을 넘으면 PlaybackLimitExceeded로 답하는 설계를 검토할 수 있고, 이때 재생 제한 초과 오류로 처리됩니다. 보고는 콘솔에서 정한 주기로 오므로 그 간격만큼의 차이는 감안합니다. -
결제 뒤 전체 재생
결제가 끝나면 같은 URL을 clipping 없이 열고, 접근 권한 검사에는 Ok와 만료 일시(expiresOn)를 함께 돌려줍니다.
미리보기를 열기 전 시험 항목
문서가 정하지 않은 동작은 시험으로 확인해 기획에 반영합니다. 시험 계정은 미수강자, 수강자 두 종류를 준비하세요.
| 시험 항목 | 확인할 내용 | 기록할 곳 |
|---|---|---|
| 시작·끝 위치 | 지정한 초에서 시작하고 끝나는지, 단위가 맞는지 | 구간 설정표 |
| 끝난 뒤 화면 | 마지막 장면에서 멈추는지, 플레이어가 닫히는지 | 결제 안내 기획서 |
| 범위 밖 이동 | 타임바를 구간 밖으로 끌 때의 반응 | 수강 안내 문구 |
| 다운로드 시도 | 미수강자 계정에서 다운로드가 거절되는지 | 접근 권한 검사 응답 규칙 |
| 콜백 기록 | 진행·종료 보고의 userData에 미리보기 표시가 실리는지 | 진도 계산 로직 |
| 결제 뒤 첫 재생 | 같은 URL이라 미리보기 때 멈춘 위치에서 이어지는지, 처음부터 시작하는지 | 시작 위치 정책 |
결제 뒤 첫 재생 위치를 정해 두고 싶다면 Agent는 MediaItem의 startTime을, iOS 앱은 seekTo(mediaItemIndex:position:)에 위치를 넘기는 방법이 문서에 있습니다. iOS 앱은 MediaItem.clippingConfiguration 값이 있을 때 화면에 미리보기 표시를 띄우는 식으로도 쓸 수 있습니다.
미리보기 구간 FAQ
-
구간 끝에 닿으면 화면이 어떻게 되나요?
문서에 적힌 내용은 미디어 항목을 정한 시작·끝 위치로 잘라낸다는 것까지입니다. 끝난 뒤의 화면과 결제 안내를 어디에 둘지는 시험 재생으로 동작을 확인한 다음 기획하기를 권합니다. iOS 앱이라면 재생 종료 이벤트(
playbackFinish)에 안내 화면을 연결하는 방식을 검토할 수 있습니다. -
미리보기 시청도 진도 보고에 들어오나요?
Callback URL 보고는 재생할 때마다 같은 형식으로 들어옵니다. userData에 미리보기 표시를 넣고, 진도 계산에서 그 세션을 빼는 규칙을 서버에 두세요. 계산 방식은 진도 데이터 설계에 있습니다.
-
탐색 제한이나 배속 제한과 함께 쓸 수 있나요?
세 설정 모두 MediaItem에 들어가는 항목이라 한 번에 지정합니다. Agent는 clipping, seekable, disablePlaybackRate를, iOS SDK는
MediaItem.Builder의 clippingConfiguration, seekable, disablePlaybackRate 메서드를 씁니다. 맛보기에서 건너뛰기를 막을지는 과정 성격에 따라 정합니다. 규칙 조합은 재생 정책을 참고하세요. -
강좌가 수백 개면 구간 값은 어디서 관리하나요?
콘텐츠 관리 화면이나 LMS 데이터베이스에 영상별 미리보기 시작·끝 값을 칸으로 두고, 재생을 열 때 그 값을 MediaItem에 넣는 구성을 권합니다. 구간을 고칠 때 파일 업로드 없이 값만 바꾸면 됩니다.
-
미리보기를 본 회원을 영업에 활용할 수 있나요?
재생 종료 보고(
NotifyPlaybackFinish)에는 사용자 아이디, 마지막 위치, 종료 원인이 실립니다. 미리보기를 끝까지 본 회원을 골라 수강 안내를 보내는 식으로 쓸 수 있습니다. 개인정보 활용 동의 범위는 먼저 확인하세요. -
미리보기 영상도 DRM 패키징이 필요한가요?
클리핑은 원본 파일을 그대로 재생하므로, 원본을 DRM 패키징해 두었다면 미리보기도 그 파일로 재생됩니다. 미리보기를 위해 별도 패키징 작업을 추가할 필요는 없습니다.
PlaynPlay 도입을 위한
기술적 지원과 서비스를 제공합니다.
제품 문의부터 데모 시연까지, 모든 지원을 위해 세일즈 및 기술 지원 팀이 준비되어 있습니다.
-
제품 및 도입 문의
도입 범위, 일정, 견적을 상담합니다. 서비스 형태와 사용자 규모를 알려주시면 맞는 연동 방식과 보안 설정을 제안합니다.
-
Trial 신청
PlaynPlay의 기능을 먼저 테스트해 보세요. 트라이얼 기간 동안 귀사의 제품과 PlaynPlay를 연동하고 성능과 기능을 직접 검증할 수 있습니다.
-
PlaynPlay 기술 문의
SDK 연동, Callback URL 설계, DRM 패키징 중에 생기는 질문에 기술팀이 답합니다. 공개된 개발 문서와 샘플 프로젝트도 함께 확인하세요.
업종
기능
가이드