자막
자막 파일 등록부터
학습자 화면 표시까지
자막은 영상 파일과 별개의 주소로 붙이고, 글자 크기와 위치는 앱의 재생 화면 설정으로 정합니다. 플랫폼마다 자막을 넣는 방법, 처음 켜질 자막을 고르는 모드, 학습자가 화면에서 바꾸는 범위, 자막 파일 운영 요령을 정리했습니다.
최종 수정
플랫폼별 자막 등록 방법
세 플랫폼 모두 자막 URL을 미디어 정보에 함께 넣습니다. 넣는 함수와 모드 이름이 플랫폼마다 다릅니다.
| 항목 | PC (Agent) | Android SDK | iOS SDK |
|---|---|---|---|
| 등록 위치 | MediaItem의 subtitles 배열 | Media3의 setSubtitleConfigurations() |
MediaItem.Builder의 subtitleConfigurations(_) |
| 자막마다 넣는 값 | url, language, label(자막 타이틀), mode | 자막 URI, MIME 타입, 언어, 선택 플래그 | url, language, label, mode (SubtitleConfiguration.Builder) |
| 처음 표시 규칙 | autoSelect(기본), show, hidden | 선택 플래그 (예제는 C.SELECTION_FLAG_DEFAULT) | autoSelect(기본), showing, hidden |
자막 형식은 Android SDK 문서에 적혀 있습니다. WebVTT(application/vtt), SRT(application/x-subrip), SAMI(application/smil+xml) 세 MIME 타입에서 여러 자막 중 고르는 기능을 지원합니다.
처음에 켜질 자막 정하기
자막을 여러 개 등록했다면 모드로 첫 화면을 정합니다. 자막 구성이 학습 설계의 일부인 어학 과정에서 먼저 정할 항목입니다.
-
autoSelect
자동 선택
PC와 iOS의 기본 모드입니다. 목록 순서가 우선순위가 됩니다. iOS 문서에 따르면 showing으로 지정한 자막이 없을 때 autoSelect 자막 가운데 맨 앞 자막이 나오고, showing이 하나라도 있으면 autoSelect 자막은 고르지 않습니다.
-
showing · show
지정 표시
iOS의 showing은 해당 자막을 골라 보여 주며 두 개 이상도 함께 출력합니다. 두 언어를 대조하며 듣는 과정에 쓰는 모드입니다. PC Agent 문서는 show를 자막 보이기로 정의합니다.
-
hidden
처음엔 숨김
등록은 하되 첫 화면에 내보내지 않을 자막입니다. iOS 문서는 이 값을 가진 자막을 출력 대상에서 뺀다고 설명합니다. 학습자가 트랙 설정에서 다시 켤 수 있는지는 출시 전 시험으로 확인하세요.
Android SDK 변경 이력에는 2024년 8월 8일 다중 자막 선택 기능 지원과 파일 이름 기반 자막 자동 추가가 함께 올라 있습니다.
학습자가 화면에서 하는 일
기본 플레이어 화면 기준입니다. Android와 iOS의 화면 문서가 같은 순서로 설명합니다.
-
트랙 설정 버튼 누르기
화면 가운데 왼쪽에 회전 잠금, 구간 반복과 나란히 트랙 설정 버튼이 있습니다. 비디오, 오디오, 자막 트랙을 이 버튼에서 다룹니다.
-
자막 보기 스위치
미디어에 자막이 있으면 스위치로 켜고 끕니다. iOS 앱은 같은 일을
isSubtitlesVisible값으로 할 수 있고, 기본값은 켜짐입니다. -
표시할 자막 고르기
스위치를 켜면 그 미디어의 자막이 모두 나열되고, 항목을 눌러 자막을 정합니다. Android 앱은 같은 선택을
selectTrack()으로 하고,deselectTrack()으로 끌 수 있는 트랙은 자막 트랙뿐입니다. -
위치와 크기 손보기
두 SDK의 변경 이력에는 2024년 10월 30일 자막 이동, 11월 11일 자막 확대·축소 기능이 추가됐다고 적혀 있습니다. 조작 방법의 화면 설명은 문서에 없으니 앱 도움말에 직접 그려 두기를 권합니다.
운영자가 정하는 자막 표시 값
앱이 재생 화면을 열 때 넘기는 설정으로 모든 영상에 같은 기본값을 줍니다. Android는 MediaPlayerActivityConfiguration, iOS는 MediaPlayerViewController.Configuration에 있습니다.
| 설정 | 고를 수 있는 값 | 기본값 | 검토 질문 |
|---|---|---|---|
| 출력 기준 | subtitleDisplayPosition OnVideo(비디오 위), OnScreen(화면 위) |
OnVideo | 화면비가 다른 영상에서 자막 자리가 어디가 좋은가 |
| 세로 위치 | subtitleTextPosition 0~1 비율, 1이 맨 아래 |
1.0 | 영상 하단에 이미 글자가 들어간 강의와 겹치는가 |
| 글자 크기 | subtitleTextSize 픽셀(Pixel) 또는 비율(Scale) |
32픽셀 | 폰과 태블릿에서 같은 크기로 보여야 하는가 |
| 글자 색 | subtitleTextColor 색 값 지정 |
흰색 | 밝은 슬라이드가 많은 과정인가 |
| 배경 | isSubtitleBackgroundVisible 켬·끔 |
끔 | 배경 없이 읽히는가 |
| 좌우 여백 | subtitlePaddingLeft, subtitlePaddingRight |
0 (Android 기준) | 긴 문장이 화면 끝에 붙지 않는가 |
자막 색과 배경 설정은 2026년 5월 29일, 좌우 여백은 2026년 7월 9일 Android·iOS SDK에 추가됐습니다. iOS는 재생 중 위치를 비율(subtitleTextFractionPosition)이나 픽셀(subtitleTextPixelPosition)로 바꾸는 속성도 있습니다.
iOS 앱에서 더 쓸 수 있는 자막 기능
아래 세 가지는 iOS SDK 문서에 있는 항목입니다. 어학·자격증 앱처럼 자막이 학습 도구인 서비스에서 검토할 만합니다.
-
PiP
작은 창 자막
iOS 자체는 화면 속 화면에서 MP4 내장 자막과 HLS 자막만 보여 주기 때문에, SDK는 외부 자막을 우회 방식으로 띄웁니다. 그래서
allowsSubtitlesInPictureInPicture는 실험적 기능으로 분류되고 기본값이 false입니다. 켜기 전에 구형 기기에서 열기 속도를 시험하세요. -
Script
자막 문장 목록
TextTrack.load(url:)는 자막 URL에서 문장 목록을 읽어 옵니다. 문장마다 아이디, 시작 위치, 종료 위치, 텍스트가 있어 영상 옆에 스크립트를 펼치고 문장을 누르면 그 위치로 옮기는 화면을 기획할 수 있습니다. -
Touch
자막 영역 터치 판별
containsPointInSubtitleTextBounds(_)는 화면의 한 점이 자막 영역 안인지 알려 줍니다. 자막을 눌러 문장을 저장하는 단어장 기능 같은 앱 기획에 쓸 수 있습니다.
작은 창 자막은 2026년 5월 29일 지원이 시작됐고, 7월 20일 구형 기기의 자막 생성 지연이 고쳐졌으며, 7월 29일 기본값이 false로 정리됐습니다. 작은 창 재생 정책은 화면 속 화면·백그라운드에서 다룹니다.
자막 파일 운영 요령
자막 문의는 대부분 파일 관리에서 생깁니다. 첫 강좌를 올리기 전에 정해 둘 규칙입니다.
-
Label
언어와 표시 이름
language에는 언어를, label에는 학습자가 목록에서 볼 이름을 넣습니다. 한국어, English처럼 그 언어로 적은 이름이 트랙 목록에서 찾기 쉽습니다.
-
Format
형식 하나로 맞추기
보유 자막이 여러 형식으로 섞여 있다면 한 형식으로 맞춰 시험 범위를 줄입니다. iOS 문서의 자막 예제는 .vtt 파일을 쓰니 iOS 앱은 같은 형식으로 먼저 시험하세요.
-
Download
내려받기와 함께 저장
2026년 7월 2일 배포본부터 Android·iOS SDK는 영상을 내려받을 때 자막을 포함해 저장합니다. 받아 둔 영상에 자막이 빠져 있다는 문의에는 앱 업데이트 뒤 다시 받기를 안내합니다.
-
Naming
파일 이름 규칙
Android SDK에는 파일 이름을 기준으로 자막을 자동 추가하는 기능이 있습니다. 영상과 자막의 파일 이름을 짝지어 두면 이 기능을 쓸 여지가 생깁니다. 세부 규칙은 상담에서 확인하세요.
-
Sync
출시 전 싱크 점검
패키징을 마친 영상으로 첫 문장, 중간, 마지막 문장의 표시 시점을 봅니다. 구간 재생을 거는 미리보기 영상은 자막이 구간 시작과 맞는지도 확인합니다.
-
Update
자막만 고쳐 올리기
자막은 영상과 다른 URL이라 오탈자를 고칠 때 영상을 다시 패키징하지 않습니다. 이미 내려받은 학습자의 기기에도 바로 반영되는지는 시험해 두세요.
자막 파일을 영상과 같은 규칙으로 올리는 순서는 콘텐츠 패키징 운영에, 작업 분담은 콘텐츠 운영 담당자 안내에 있습니다.
자막 FAQ
-
자막을 꺼 둔 채로 재생을 시작할 수 있나요?
PC와 iOS는 자막 모드를 hidden으로 넣고, iOS 앱은 isSubtitlesVisible을 false로 둘 수도 있습니다. Android는 Media3 자막 설정의 선택 플래그로 기본 선택 여부를 정합니다.
-
학습자마다 자막 크기를 다르게 할 수 있나요?
자막 표시 값은 앱이 재생 화면을 열 때 넘기는 설정입니다. 앱에 자막 설정 화면을 두고 학습자가 고른 값을 저장했다가 다음 재생 때 넘기는 방식을 권합니다. iOS는 재생 중에도 MediaPlayer의 subtitleTextSize와 subtitleTextColor를 바꿀 수 있습니다.
-
자막이 슬라이드 글씨를 가립니다.
세 가지를 차례로 조정합니다. 출력 기준을 OnScreen(화면 위)으로 바꿔 보고, 세로 위치 값을 1보다 작게 해 자막을 올리고, 그래도 겹치면 글자 크기를 줄입니다. 대표 기기 두세 대에서 같은 영상으로 비교하면 기본값을 빨리 정할 수 있습니다.
-
PC 웹 강의실에서 여러 언어 자막을 넣을 수 있나요?
MediaItem의 subtitles는 배열이라 언어마다 자막 항목을 하나씩 넣습니다. 항목마다 language와 label을 따로 적고, 처음 켤 자막 하나만 autoSelect나 show로, 나머지는 hidden으로 두는 구성이 무난합니다.
-
학습자가 어느 문장에서 멈췄는지 알 수 있나요?
iOS 앱은
onCueChange로 지금 표시 중인 자막 문장을 받습니다. 앱이 재생 종료 시점의 문장을 자체 서버로 보내게 만들면 어려워한 대목을 문장 단위로 모을 수 있습니다. 위치 기준 분석은 진도 데이터 설계의 종료 위치 값으로도 가능합니다.
PlaynPlay 도입을 위한
기술적 지원과 서비스를 제공합니다.
제품 문의부터 데모 시연까지, 모든 지원을 위해 세일즈 및 기술 지원 팀이 준비되어 있습니다.
-
제품 및 도입 문의
도입 범위, 일정, 견적을 상담합니다. 서비스 형태와 사용자 규모를 알려주시면 맞는 연동 방식과 보안 설정을 제안합니다.
-
Trial 신청
PlaynPlay의 기능을 먼저 테스트해 보세요. 트라이얼 기간 동안 귀사의 제품과 PlaynPlay를 연동하고 성능과 기능을 직접 검증할 수 있습니다.
-
PlaynPlay 기술 문의
SDK 연동, Callback URL 설계, DRM 패키징 중에 생기는 질문에 기술팀이 답합니다. 공개된 개발 문서와 샘플 프로젝트도 함께 확인하세요.
기능
업종
가이드