ensureInitialized method
Future<void>
ensureInitialized(
)
override
Implementation
@override
Future<void> ensureInitialized() async {
if (_isEnsureInitialized) {
return;
}
_isEnsureInitialized = true;
try {
try {
CoastAudioNative.initialize(
library: DynamicLibrary.open(
sharedLibraryPath,
),
);
_isCrash = true;
} catch (e) {
rethrow;
}
_isCrash = false;
for (final backend in AudioDeviceBackend.values) {
backends[backend] = switch (backend) {
AudioDeviceBackend.coreAudio => Platform.isMacOS || Platform.isIOS,
AudioDeviceBackend.aaudio => Platform.isAndroid,
AudioDeviceBackend.openSLES => Platform.isAndroid,
AudioDeviceBackend.wasapi => Platform.isWindows,
AudioDeviceBackend.alsa => Platform.isLinux,
AudioDeviceBackend.pulseAudio => Platform.isLinux,
AudioDeviceBackend.jack => Platform.isLinux,
AudioDeviceBackend.dummy => true,
};
}
audioDeviceContext = AudioDeviceContext(
backends:
backends.entries.where((e) => e.value).map((e) => e.key).toList(),
);
} catch (e) {}
_isDeviceSupport = true;
}