我使用UWP AudioGraph API生成音色,如SDK示例中的音频创建。它工作正常,但我试图添加平移。我可以让它一直平移到左扬声器,但不是一直向右。例如,
leftEmitter = new AudioNodeEmitter(AudioNodeEmitterShape.CreateOmnidirectional(),
AudioNodeEmitterDecayModel.CreateCustom(1, 1),
AudioNodeEmitterSettings.DisableDoppler);
leftEmitter.Position = new System.Numerics.Vector3(-1, 0, 0);
leftEmitter.Gain = 1;
frameInputNodeLeft = graph.CreateFrameInputNode(nodeEncodingProperties, leftEmitter);
frameInputNodeLeft.AddOutgoingConnection(deviceOutputNode);
这将位置设置为x = -1,y = 0和z = 0.它只出自左扬声器,这很好,但它相反,
leftEmitter.Position = new System.Numerics.Vector3(1, 0, 0);
这两个扬声器都出来了,为什么会这样?也许我误解了坐标系?我也使用耳机,所以不会误解它的出现位置。
尼克。
PS:我也尝试从左到右进行实时平移,我从这个位置开始,
leftEmitter.Position = new System.Numerics.Vector3(-100, 0, 10)
每次渲染帧时我都会在X位置添加0.1,这会让我在左侧扬声器中一直听到它,慢慢地向右移动,但是,在中间点之后它会卡住,至少那听起来像是什么。它不会比这更进一步。
示例代码:
Goto scenario 3, and press "Left" button to hear panning from left to right.