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