init method
Future<bool>
init({
- required String host,
- required String accessKey,
- required String accessSecret,
- String? hostAuto,
- String? accessKeyAuto,
- String? accessSecretAuto,
- int recorderConfigRate = 8000,
- Duration? requestTimeout,
- int recorderConfigChannels = 1,
- bool isVolumeCallback = true,
- bool setLog = true,
- ACRCloudRecMode recMode = ACRCloudRecMode.default_mode,
You should initilize the AcrCloudSdk instance with this function.
The host
argument's meaning depends on recMode, if recMode is ACRCloudRecMode.local
it means local fingerprinting database directory else it means the host of server
LocationData
. The interval
and distanceFilter
are controlling how
accessKey
is the Access key of your ACRCloud project
accessSecret
is the Access secret of your ACRCloud project
Http request timeout, default is 5000ms
and can be set using requestTimeout
.
This setLog
argument is to toggle display of log in terminal
recMode
argument is the Recognition mode
Implementation
Future<bool> init({
required String host,
required String accessKey,
required String accessSecret,
String? hostAuto,
String? accessKeyAuto,
String? accessSecretAuto,
int recorderConfigRate = 8000,
Duration? requestTimeout,
int recorderConfigChannels = 1,
bool isVolumeCallback = true,
bool setLog = true,
ACRCloudRecMode recMode = ACRCloudRecMode.default_mode,
}) async {
try {
var status = await Permission.microphone.status;
if ((status.isDenied || status.isPermanentlyDenied) &&
Platform.isAndroid) {
// We didn't ask for permission yet.
await [
Permission.microphone,
Permission.location,
Permission.locationAlways,
Permission.locationWhenInUse,
Permission.phone,
Permission.storage,
].request();
return await init(
host: host,
accessKey: accessKey,
accessSecret: accessSecret,
hostAuto: hostAuto,
accessKeyAuto: accessKeyAuto,
accessSecretAuto: accessSecretAuto,
recorderConfigRate: recorderConfigRate,
recorderConfigChannels: recorderConfigChannels,
requestTimeout: requestTimeout,
isVolumeCallback: isVolumeCallback,
setLog: setLog,
recMode: recMode);
} else {
return await _channel.invokeMethod(
'init',
{
"host": host,
"accessKey": accessKey,
"accessSecret": accessSecret,
"hostAuto": hostAuto ?? host,
"accessKeyAuto": accessKeyAuto ?? accessKey,
"accessSecretAuto": accessSecretAuto ?? accessSecret,
"recorderConfigRate": recorderConfigRate,
"recorderConfigChannels": recorderConfigChannels,
"isVolumeCallback": isVolumeCallback,
"setLog": setLog,
"requestTimeout": requestTimeout?.inMilliseconds,
"recMode": recMode.index,
},
);
}
} catch (e) {
return false;
}
}