setDrmCallback method
设置加载url的hash值回调。如果不设置,SDK使用md5算法。
Implementation
Future<void> setDrmCallback(Function(Object, Object) requestProvision,
Function(Object, Object) requestKey) async {
BasicMessageChannel<String> _basicMessageChannel =
BasicMessageChannel<String>(
"requestProvision",
StringCodec(),
);
BasicMessageChannel<String> _basicMessageChannel2 =
BasicMessageChannel<String>(
"requestKey",
StringCodec(),
);
// 注册调用 Flutter 端的 callback, 并发送至 Native 端
_basicMessageChannel.setMessageHandler((message) async {
if (message != null) {
Map<String, dynamic> parsedArguments = jsonDecode(message);
Object object1 = parsedArguments["param1"];
Object object2 = parsedArguments["param2"];
String result = requestProvision(object1, object2);
// 处理接收到的消息
return result; // 返回结果给 Native
}
return "";
});
_basicMessageChannel2.setMessageHandler((message) async {
if (message != null) {
Map<String, dynamic> parsedArguments = jsonDecode(message);
Object object1 = parsedArguments["param1"];
Object object2 = parsedArguments["param2"];
String result = requestKey(object1, object2);
// 处理接收到的消息
return result; // 返回结果给 Native
}
return "";
});
try {
await FlutterAliPlayerFactory.methodChannel
.invokeMethod('setDrmCallback');
} on PlatformException catch (e) {
print("Failed to register callback: '${e.message}'.");
}
}