# Google Widevine
Note
ฟีเจอร์นี้ของ ByteArk Player รองรับเฉพาะผู้ใช้ ByteArk Video Cloud for Business หากคุณต้องการใช้งานกรุณาติดต่อ sales@byteark.com
ByteArk Player SDK for Flutter รองรับการเล่นวิดีโอที่ป้องกันด้วย Google Widevine (opens new window) บน Android โดย Flutter SDK จะส่ง DRM configuration ผ่านไปยัง ExoPlayer ของ Android SDK เพื่อจัดการ License และ Decryption
Note
Widevine ต้องใช้ source ในรูปแบบ MPEG-DASH (.mpd)
# การใช้งาน
แนบ WidevineDrm เข้ากับ Source ผ่าน Factory ByteArkPlayerSource.drm
final playerItem = ByteArkPlayerItem(
sources: [
ByteArkPlayerSource.drm(
url: "<DASH_MPD_URL>",
drm: WidevineDrm(
licenseUrl: "<WIDEVINE_LICENSE_URL>",
),
),
],
);
2
3
4
5
6
7
8
9
10
| Property | Type | Required | Description |
|---|---|---|---|
licenseUrl | String? | Yes | URL ของ Widevine License server |
licenseRequestHeaders | Map<String, String>? | No | Custom header ที่ส่งไปยัง License server |
# ส่ง Custom Header ไปยัง License Server
หาก License server ต้องการ Authorization header หรือ header อื่นๆ สามารถส่งผ่าน licenseRequestHeaders
final playerItem = ByteArkPlayerItem(
sources: [
ByteArkPlayerSource.drm(
url: "<DASH_MPD_URL>",
drm: WidevineDrm(
licenseUrl: "<WIDEVINE_LICENSE_URL>",
licenseRequestHeaders: {
"Authorization": "Bearer <YOUR_TOKEN>",
},
),
),
],
);
2
3
4
5
6
7
8
9
10
11
12
13
Note
หากใช้งาน ByteArk Multi-DRM สามารถดูวิธีสร้าง JWT Token สำหรับ Authorization header ได้ที่ ขั้นตอนการสร้าง Authorization Token สำหรับใช้งาน DRM License Server
# เปิด Secure Surface
เพื่อป้องกันการ Capture หน้าจอ ขณะเล่นเนื้อหาที่ป้องกันด้วย DRM แนะนำให้เปิด Secure Surface ผ่าน ByteArkPlayerConfig
final config = ByteArkPlayerConfig(
licenseKey: licenseKey,
playerItem: playerItem,
secureSurface: true,
);
2
3
4
5
ข้อควรระวัง
- การใช้งาน DRM ต้องใช้งานผ่าน HTTPS เท่านั้น
- บางอุปกรณ์ Android ที่ไม่รองรับ Hardware-backed Widevine จะไม่สามารถเล่นวิดีโอที่ Robustness สูงได้