1. 개요
PlayNPlay는 Device/OS 종류를 구분하여 Player를 호출할 수 있는 스크립트를 제공합니다.
이 페이지는 기본적인 스트리밍, 다운로드를 구현하는 코드를 설명하며 모든 기능 설명은 아래 공식 가이드를 참고 부탁드립니다.
2. 기본 샘플 코드
웹 페이지에 https://app.playnplay.com/modules/agent.js 스크립트를 import하여 사용합니다.
아래는 웹 샘플 소스입니다.
<script type="text/javascript" src="https://app.playnplay.com/modules/agent.js"></script>
<script type="text/javascript">
const mediaItem = { // 인증 정보
url: "https://sample.playnplay.com/video/sintel-1280-surround.mp4",
metadata: {
title: "테스트영상",
},
drm: {
appId: "app id",
userId: "test-user",
}
};
playnplay.launch(LaunchType.Streaming, mediaItem); // 플레이어 실행, 3. PlayNPlay 스트리밍 사용법 참고
</script>
3. PlayNPlay 스트리밍 사용법 상세
playnplay.launch = async (type, mediaItemOrUrl, options); 형태로 사용합니다. 아래는 매개변수 설명입니다.
- Type: 플레이어 실행 타입입니다.
- “Streaming”: PC & Mobile 앱 재생 요청
- “OpeningPage”: (PC only) Custom WebView 재생 요청
- mediaItem or URL: 미디어 영상 경로 등 필요 데이터를 담은 객체 또는 PC앱의 화면을 구성할 웹 URL입니다. http:// 또는 https:// 포함해야 합니다.
- options: 플레이어 높이, 너비 등을 지정할 수 있는 옵션입니다.
- height: 플레이어 높이, Number type
- width: 플레이어 너비, Number type
mediaItem 생성 예제
{
url: "https://sample.com/video/test.mp4",
metadata: {
title: "영상제목",
},
drm: {
appId: "app id",
userId: "test-user",
}
}
3. Media Download 방법 상세
playnplay.download = async (mediaItems); 형태로 사용합니다. 아래는 매개변수 설명입니다.
- mediaItems: 미디어 영상 경로 등 필요 데이터를 담은 객체이며, 여러 객체를 넣어 다중 다운로드를 수행할 수 있습니다. http:// 또는 https:// 포함해야 합니다.
Download mediaItem 생성 예제
{
url: "https://sample.com/video/test.mp4",
metadata: {
downloadPath: "/OO강의/OO교수특강/1회차"
},
drm: {
appId: "app id",
userId: "test-user",
offlineAccessPeriod: 86400
}
}
5. mediaItem 옵션 상세
mediaItem 객체 예시 (JSON type)
{
url: "https://sample.com/video/test.mp4", // 영상 URL
seekable: true, // 탐색 기능 허용 여부 (기본값: true, Streaming only)
returnUrl: "https://sample.com/return", // 영상 종료 시 띄울 웹 페이지 (Streaming only)
drm: {
appId: "app id", // 인증키
userId: "test-user", // 사용자 아이디
offlineAccessPeriod: 86400 // 네트워크 미연결 시 다운로드 영상 재생 가능 기간 (초 단위), undefined: 제한없이 재생 가능, 0: 오프라인 재생 권한 없음, n: n초까지 재생 가능
},
subtitles: [{
url: "https://sample.com/subtitles.vtt", // 자막 URL
}],
metadata: {
title: "영상제목", // 모바일 플레이어 타임바에 보이는 파일명 설정
artworkUrl: "https://sample.com/artwork.jpg", // 다운로드 영상의 썸네일 이미지 URL
downloadPath: "/OO강의/OO교수특강/1회차" // 다운로드 영상일 시 저장 경로
}
}
6. Local 테스트 예시 스크립트
테스트 시 주의사항
- 전용 영상 도메인으로 재생하셔야 정상적으로 재생되며 이 도메인은 CDNetworks에서 설정하여 제공해 드립니다.
- 제공해드린 개통 가이드에 따라 도메인을 CDNetworks DNS로 위임 처리 후 테스트를 진행해 주세요.
HTML+JS Source
<html>
<head>
<meta charset="UTF-8">
<script src="https://app.playnplay.com/modules/agent.js"></script> //플레이어 호출 스크립트
<script type="text/javascript">
const mediaItem = { //인증 정보 입력
url: "https://sample.com/video/test.mp4",
metadata: {
downloadPath: "/강의/영상",
},
drm: {
appId: "app id",
userId: "test",
offlineAccessPeriod: 86400
}
};
function play() {
playnplay.launch(LaunchType.Streaming, mediaItem);
}
function download() {
playnplay.download(mediaItem);
}
</script>
</head>
<body>
<button onclick="play()">Play</button>
<button onclick="download()">Download</button>
</body>
</html>