gpt4 book ai didi

c# - 播放数组中的声音会返回错误C#-Visual Studio

转载 作者:行者123 更新时间:2023-12-03 00:08:37 48 4
gpt4 key购买 nike

因此,我在Visual Studio中使用C#创建了一个Windows窗体应用程序,并且有三个数组:

    System.Media.SoundPlayer[] keyClick = new System.Media.SoundPlayer[4];
System.Media.SoundPlayer[] spaceClick = new System.Media.SoundPlayer[2];
System.Media.SoundPlayer[] enterClick = new System.Media.SoundPlayer[1];

程序初始化时将其设置为包含某些声音文件:
        private void textIn_Enter(object sender, EventArgs e)
{
for(int i = 0; i < 4; i++)
{
keyClick[i] = new System.Media.SoundPlayer(@"C:\Users\brain\OneDrive\Documents\Visual Studio 2015\Projects\TextAdventure\TextAdventure\Assets\keyClick" + i + ".wav");
}

for (int i = 0; i < 2; i++)
{
keyClick[i] = new System.Media.SoundPlayer(@"C:\Users\brain\OneDrive\Documents\Visual Studio 2015\Projects\TextAdventure\TextAdventure\Assets\spaceClick" + i + ".wav");
}

for (int i = 0; i < 1; i++)
{
keyClick[i] = new System.Media.SoundPlayer(@"C:\Users\brain\OneDrive\Documents\Visual Studio 2015\Projects\TextAdventure\TextAdventure\Assets\enterClick" + i + ".wav");
}
}

现在,例如,keyClick包含keyClick1.wav到keyClick5.wav。当按下一个键时,程序将播放来自特定数组的随机索引的项目:
keyClick[randomizer.Next(0, 4)].Play();

因此,我写的第一个是上面的一个,它工作正常,但是我为spacebar数组中播放的空格键添加了一条命令:
spaceClick[randomizer.Next(0, 2)].Play();

但是,这以及从enterClick数组播放都会返回错误:

"An unhandled exception of type 'System.NullReferenceException' occurred in TextAdventure.exe

Additional information: Object reference not set to an instance of an object."



我不知道如何解决此问题,因为我知道它应该与从keyClick播放完全一样,但事实并非如此。有谁知道如何解决这一问题?

最佳答案

问题是您要填充数组,而您只填充keyClick。

这是您填充空间的循环点击

for (int i = 0; i < 2; i++)
{
keyClick[i] = new System.Media.SoundPlayer(@"C:\Users\brain\OneDrive\Documents\Visual Studio 2015\Projects\TextAdventure\TextAdventure\Assets\spaceClick" + i + ".wav");
}

您正在设置 keyClick[i],从而 覆盖先前循环中已经存在的那些。应该改为
for (int i = 0; i < 2; i++)
{
spaceClick[i] = new System.Media.SoundPlayer(@"C:\Users\brain\OneDrive\Documents\Visual Studio 2015\Projects\TextAdventure\TextAdventure\Assets\spaceClick" + i + ".wav");
}

您的第三个循环也是同一问题的受害者,应相应地进行更改

关于c# - 播放数组中的声音会返回错误C#-Visual Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36868312/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com