我有一个可以播放音频文件的应用程序。当用户开始音频播放时,我希望音频在 300 毫秒或类似的时间内从有效的 0 音量淡入到 1。
我一直在使用 GitHub 上的 AudioGraph 示例,我了解到有一个 限制器效果 可以控制音频的响度。如何使用它来更改持续时间为 300 毫秒的音频文件的响度?
或者还有其他方法可以实现淡入淡出效果吗?
如何使用它来改变音频文件的响度 持续时间300ms?
您可以使用计时器来控制开始音频播放时的响度。这是我在官方示例(Scenario5_InboxEffects.xaml.cs)中进行的测试,效果非常好。代码如下。
//Scenario5_InboxEffects.xaml.cs
private void TogglePlay()
{
if (graphButton.Content.Equals("Start Graph"))
{
graph.Start();
graphButton.Content = "Stop Graph";
audioPipe.Fill = new SolidColorBrush(Colors.Blue);
//just for a test
FadeEffect(300, 1, 1500);
}
....
}
private async void FadeEffect(int delay, uint startLoudness, uint endLoudness)
{
for (int i = 1; i <= delay; i++)
{
var chip = (endLoudness - startLoudness) / (delay * 1.0) * i;
limiterEffectDefinition.Loudness = (uint)(startLoudness + chip);
limiterEffectDefinition.Release = 10;
fileInputNode.EnableEffectsByDefinition(limiterEffectDefinition);
await Task.Delay(1);
}
}
或者还有其他方法可以实现淡入淡出效果吗?
抱歉,Windows Runtime AudioGraph 目前没有相关 API。