forked from sin365/AxibugEmuOnline
完善AudioDSP可选设置采样率,Essgee设置正确采样率
This commit is contained in:
parent
5cb474d41a
commit
be8b64f630
@ -34,7 +34,7 @@ public class UEGSoundPlayer : MonoBehaviour, AxiAudioPull
|
|||||||
|
|
||||||
private void OnEnable()
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
App.audioMgr.RegisterStream(nameof(UEssgee), AudioSettings.outputSampleRate, this);
|
App.audioMgr.RegisterStream(nameof(UEssgee), sampleRate, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDisable()
|
void OnDisable()
|
||||||
|
|||||||
@ -37,7 +37,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
private void OnEnable()
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
App.audioMgr.RegisterStream(nameof(NesEmulator), AudioSettings.outputSampleRate, this);
|
App.audioMgr.RegisterStream(nameof(NesEmulator), null, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDisable()
|
void OnDisable()
|
||||||
|
|||||||
@ -47,7 +47,7 @@ public class SGSoundPlayer : MonoBehaviour, AxiAudioPull
|
|||||||
|
|
||||||
private void OnEnable()
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
App.audioMgr.RegisterStream(nameof(UStoicGoose), AudioSettings.outputSampleRate, this);
|
App.audioMgr.RegisterStream(nameof(UStoicGoose), null, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDisable()
|
void OnDisable()
|
||||||
|
|||||||
@ -78,7 +78,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
//函数仅处理设备变化的情况,非设备变化不再本函数处理,避免核心采样率变化和本处循环调用
|
//函数仅处理设备变化的情况,非设备变化不再本函数处理,避免核心采样率变化和本处循环调用
|
||||||
if (deviceWasChanged)
|
if (deviceWasChanged)
|
||||||
{
|
{
|
||||||
ResetAudioCfg();
|
ResetAudioCfg(AudioSettings.outputSampleRate);
|
||||||
//AudioConfiguration config = AudioSettings.GetConfiguration();
|
//AudioConfiguration config = AudioSettings.GetConfiguration();
|
||||||
//AudioSettings.Reset(config);
|
//AudioSettings.Reset(config);
|
||||||
//TODO 重新播放音效,但是DSP不用,若有UI BGM,后续 这里加重播
|
//TODO 重新播放音效,但是DSP不用,若有UI BGM,后续 这里加重播
|
||||||
@ -119,20 +119,22 @@ namespace AxibugEmuOnline.Client
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="channelId">通道标识符 (e.g., "NES", "MAME")</param>
|
/// <param name="channelId">通道标识符 (e.g., "NES", "MAME")</param>
|
||||||
/// <param name="inputSampleRate">该通道的原始采样率</param>
|
/// <param name="inputSampleRate">该通道的原始采样率</param>
|
||||||
public void RegisterStream(string channelId, int inputSampleRate, AxiAudioPull audioPullHandle)
|
public void RegisterStream(string channelId, int? inputSampleRate, AxiAudioPull audioPullHandle)
|
||||||
{
|
{
|
||||||
_audioStreams = null;
|
_audioStreams = null;
|
||||||
_audioStreams = new AudioStreamData(channelId, inputSampleRate, audioPullHandle);
|
_audioStreams = new AudioStreamData(channelId,
|
||||||
ResetAudioCfg();
|
inputSampleRate.HasValue ? inputSampleRate.Value : AudioSettings.outputSampleRate
|
||||||
|
, audioPullHandle);
|
||||||
|
ResetAudioCfg(inputSampleRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ResetAudioCfg()
|
private void ResetAudioCfg(int? inputSampleRate)
|
||||||
{
|
{
|
||||||
// 获取当前音频配置
|
// 获取当前音频配置
|
||||||
AudioConfiguration config = AudioSettings.GetConfiguration();
|
AudioConfiguration config = AudioSettings.GetConfiguration();
|
||||||
|
|
||||||
// 设置目标音频配置
|
// 设置目标音频配置
|
||||||
config.sampleRate = 48000; // 采样率为 44100Hz
|
config.sampleRate = inputSampleRate.HasValue ? inputSampleRate.Value : 48000; // 采样率为 44100Hz
|
||||||
config.numRealVoices = 32; // 设置最大音频源数量(可选)
|
config.numRealVoices = 32; // 设置最大音频源数量(可选)
|
||||||
config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选)
|
config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选)
|
||||||
config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选)
|
config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user