如何使用 UWP AudioGraph 创建音频淡入效果?

问题描述 投票:0回答:1

我有一个可以播放音频文件的应用程序。当用户开始音频播放时,我希望音频在 300 毫秒或类似的时间内从有效的 0 音量淡入到 1。

我一直在使用 GitHub 上的 AudioGraph 示例,我了解到有一个 限制器效果 可以控制音频的响度。如何使用它来更改持续时间为 300 毫秒的音频文件的响度?

或者还有其他方法可以实现淡入淡出效果吗?

c# audio uwp win-universal-app
1个回答
0
投票

如何使用它来改变音频文件的响度 持续时间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。

© www.soinside.com 2019 - 2024. All rights reserved.