Update Cryville.Audio.
This commit is contained in:
@@ -268,12 +268,12 @@ namespace Cryville.Crtr {
|
||||
"\nStates: c{0} / b{1}",
|
||||
cbus.ActiveStateCount, bbus.ActiveStateCount
|
||||
);
|
||||
var aTime = Game.AudioClient.Position;
|
||||
var aTime = Game.AudioClient.Position - atime0;
|
||||
var iTime = inputProxy.GetTimestampAverage();
|
||||
statusbuf.AppendFormat(
|
||||
"\nSTime: {0:G9}s {5} {6}\nATime: {1:G9}s ({3:+0.0ms;-0.0ms;0}) {5} {6}\nITime: {2:G9}s ({4:+0.0ms;-0.0ms;0}) {5} {7}",
|
||||
cbus.Time, aTime, iTime,
|
||||
(aTime - atime0 - cbus.Time) * 1e3,
|
||||
(aTime - cbus.Time) * 1e3,
|
||||
(iTime - cbus.Time) * 1e3,
|
||||
forceSyncFrames != 0 ? "(force sync)" : "",
|
||||
paused ? "(paused)" : "",
|
||||
@@ -529,7 +529,7 @@ namespace Cryville.Crtr {
|
||||
logs.text = "";
|
||||
}
|
||||
Game.AudioSequencer.Playing = true;
|
||||
atime0 = Game.AudioClient.Position - startOffset;
|
||||
atime0 = Game.AudioClient.BufferPosition - startOffset;
|
||||
inputProxy.SyncTime(cbus.Time);
|
||||
inputProxy.Activate();
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
using Cryville.Audio.Source;
|
||||
using Cryville.Audio.Source.Libav;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
|
@@ -26,6 +26,7 @@ namespace Cryville.Crtr {
|
||||
public static string GameDataPath { get; private set; }
|
||||
public static string UnityDataPath { get; private set; }
|
||||
public static IAudioDeviceManager AudioManager;
|
||||
public static IAudioDevice AudioDevice;
|
||||
public static AudioClient AudioClient;
|
||||
public static SimpleSequencerSource AudioSequencer;
|
||||
public static SimpleSequencerSession AudioSession;
|
||||
@@ -89,6 +90,16 @@ namespace Cryville.Crtr {
|
||||
ffmpeg.RootPath = "";
|
||||
#else
|
||||
#error No FFmpeg search path.
|
||||
#endif
|
||||
|
||||
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
|
||||
EngineBuilder.Engines.Add(typeof(Audio.Wasapi.MMDeviceEnumeratorWrapper));
|
||||
EngineBuilder.Engines.Add(typeof(Audio.WaveformAudio.WaveDeviceManager));
|
||||
#elif UNITY_ANDROID
|
||||
EngineBuilder.Engines.Add(typeof(Audio.AAudio.AAudioManager));
|
||||
EngineBuilder.Engines.Add(typeof(Audio.OpenSLES.Engine));
|
||||
#else
|
||||
#error No audio engine defined.
|
||||
#endif
|
||||
while (true) {
|
||||
try {
|
||||
@@ -99,8 +110,13 @@ namespace Cryville.Crtr {
|
||||
}
|
||||
else {
|
||||
Logger.Log("main", 1, "Audio", "Using audio API: {0}", AudioManager.GetType().Namespace);
|
||||
AudioClient = AudioManager.GetDefaultDevice(DataFlow.Out).Connect();
|
||||
AudioClient.Init(AudioClient.DefaultFormat);
|
||||
AudioDevice = AudioManager.GetDefaultDevice(DataFlow.Out);
|
||||
AudioClient = AudioDevice.Connect(AudioDevice.DefaultFormat, AudioDevice.MinimumBufferSize + AudioDevice.BurstSize);
|
||||
Logger.Log(
|
||||
"main", 1, "Audio",
|
||||
"Audio Output = {{ Name = \"{0}\", BurstSize = {1}, Format = {2}, BufferSize = {3} }}",
|
||||
AudioDevice.Name, AudioDevice.BurstSize, AudioClient.Format, AudioClient.BufferSize
|
||||
);
|
||||
AudioClient.Source = AudioSequencer = new SimpleSequencerSource();
|
||||
AudioSession = AudioSequencer.NewSession();
|
||||
AudioSequencer.Playing = true;
|
||||
@@ -147,6 +163,7 @@ namespace Cryville.Crtr {
|
||||
try {
|
||||
AudioClient.Dispose();
|
||||
AudioSequencer.Dispose();
|
||||
AudioDevice.Dispose();
|
||||
AudioManager.Dispose();
|
||||
}
|
||||
catch (Exception ex) {
|
||||
|
Reference in New Issue
Block a user