Re: Using widevine
Posted: Thu Sep 07, 2017 4:54 pm
Hi,
The functions, classes and types are present in CEF4Delphi but I haven't tested them.
The functions, classes and types are present in CEF4Delphi but I haven't tested them.
The forum for BriskBard users and CEF4Delphi / WebView4Delphi / WebUI4Delphi / WebUI4CSharp developers
https://www.briskbard.com/forum/
Code: Select all
///
// Register the Widevine CDM plugin.
//
// The client application is responsible for downloading an appropriate
// platform-specific CDM binary distribution from Google, extracting the
// contents, and building the required directory structure on the local machine.
// The cef_browser_host_t::StartDownload function and CefZipArchive structure
// can be used to implement this functionality in CEF. Contact Google via
// https://www.widevine.com/contact.html for details on CDM download.
//
// |path| is a directory that must contain the following files:
// 1. manifest.json file from the CDM binary distribution (see below).
// 2. widevinecdm file from the CDM binary distribution (e.g.
// widevinecdm.dll on on Windows, libwidevinecdm.dylib on OS X,
// libwidevinecdm.so on Linux).
// 3. widevidecdmadapter file from the CEF binary distribution (e.g.
// widevinecdmadapter.dll on Windows, widevinecdmadapter.plugin on OS X,
// libwidevinecdmadapter.so on Linux).
//
// If any of these files are missing or if the manifest file has incorrect
// contents the registration will fail and |callback| will receive a |result|
// value of CEF_CDM_REGISTRATION_ERROR_INCORRECT_CONTENTS.
//
// The manifest.json file must contain the following keys:
// A. "os": Supported OS (e.g. "mac", "win" or "linux").
// B. "arch": Supported architecture (e.g. "ia32" or "x64").
// C. "x-cdm-module-versions": Module API version (e.g. "4").
// D. "x-cdm-interface-versions": Interface API version (e.g. "8").
// E. "x-cdm-host-versions": Host API version (e.g. "8").
// F. "version": CDM version (e.g. "1.4.8.903").
// G. "x-cdm-codecs": List of supported codecs (e.g. "vp8,vp9.0,avc1").
//
// A through E are used to verify compatibility with the current Chromium
// version. If the CDM is not compatible the registration will fail and
// |callback| will receive a |result| value of
// CEF_CDM_REGISTRATION_ERROR_INCOMPATIBLE.
//
// |callback| will be executed asynchronously once registration is complete.
//
// On Linux this function must be called before cef_initialize() and the
// registration cannot be changed during runtime. If registration is not
// supported at the time that cef_register_widevine_cdm() is called then
// |callback| will receive a |result| value of
// CEF_CDM_REGISTRATION_ERROR_NOT_SUPPORTED.
///
Code: Select all
cefclient.exe --enable-widevine-cdm --cache-path=c:\temp\cache
Code: Select all
if GlobalCEFApp.StartMainProcess then
begin
CefFastRegisterWidevineCdm(ExtractFilePath(Application.ExeName) +'cef\Widevine',OnCDMRegistrationComplete);
...
end;
Code: Select all
procedure OnCDMRegistrationComplete(result: TCefCDMRegistrationError; const error_message: ustring);
begin
showmessage('error');
end;
Code: Select all
GlobalCEFApp.AddCustomCommandLine('--enable-widevine-cdm', '');
GlobalCEFApp.AddCustomCommandLine('--cache-path', ExtractFilePath(ParamStr(0)) + 'cef\cache');
GlobalCEFApp.OnCDMRegistrationComplete := OnCDMRegistrationComplete;
GlobalCEFApp.WidevinePath := ExtractFilePath(Application.ExeName) +'cef\WidevineCdm';
if GlobalCEFApp.StartMainProcess then
...