# 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>",
      ),
    ),
  ],
);
1
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>",
        },
      ),
    ),
  ],
);
1
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,
);
1
2
3
4
5

ข้อควรระวัง

  • การใช้งาน DRM ต้องใช้งานผ่าน HTTPS เท่านั้น
  • บางอุปกรณ์ Android ที่ไม่รองรับ Hardware-backed Widevine จะไม่สามารถเล่นวิดีโอที่ Robustness สูงได้