Add extra fallback logic for audio engine initialization.
This commit is contained in:
@@ -76,14 +76,30 @@ namespace Cryville.Crtr {
|
||||
#if UNITY_ANDROID
|
||||
Cryville.Audio.OpenSL.OutputClient.CallbackFunction = audioCallback;
|
||||
#endif
|
||||
AudioManager = EngineBuilder.Create();
|
||||
Logger.Log("main", 1, "Audio", "Using audio API: {0}", AudioManager.GetType().Namespace);
|
||||
AudioClient = AudioManager.GetDefaultDevice(DataFlow.Out).Connect();
|
||||
AudioClient.Init(AudioClient.DefaultFormat);
|
||||
AudioClient.Source = AudioSequencer = new SimpleSequencerSource();
|
||||
AudioSession = AudioSequencer.NewSession();
|
||||
AudioSequencer.Playing = true;
|
||||
AudioClient.Start();
|
||||
while (true) {
|
||||
try {
|
||||
AudioManager = EngineBuilder.Create();
|
||||
if (AudioManager == null) {
|
||||
Popup.Create("Cannot initialize audio engine");
|
||||
Logger.Log("main", 5, "Audio", "Cannot initialize audio engine");
|
||||
}
|
||||
else {
|
||||
Logger.Log("main", 1, "Audio", "Using audio API: {0}", AudioManager.GetType().Namespace);
|
||||
AudioClient = AudioManager.GetDefaultDevice(DataFlow.Out).Connect();
|
||||
AudioClient.Init(AudioClient.DefaultFormat);
|
||||
AudioClient.Source = AudioSequencer = new SimpleSequencerSource();
|
||||
AudioSession = AudioSequencer.NewSession();
|
||||
AudioSequencer.Playing = true;
|
||||
AudioClient.Start();
|
||||
}
|
||||
break;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Logger.Log("main", 4, "Audio", "An error occured when initializing the audio engine: {0}", ex);
|
||||
Logger.Log("main", 3, "Audio", "Trying to use fallback audio engines");
|
||||
EngineBuilder.Engines.Remove(AudioManager.GetType());
|
||||
}
|
||||
}
|
||||
|
||||
ChartPlayer.motionRegistry = new Dictionary<Identifier, MotionRegistry> {
|
||||
{ "pt" , new MotionRegistry(typeof(VecPt)) },
|
||||
|
Reference in New Issue
Block a user