Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#完成后重复mp3文件_C#_Winforms_Loops_Mp3_Repeat - Fatal编程技术网

C#完成后重复mp3文件

C#完成后重复mp3文件,c#,winforms,loops,mp3,repeat,C#,Winforms,Loops,Mp3,Repeat,在我当前的项目中,我的音乐根据游戏状态播放。像大多数游戏一样,一旦配乐结束,它就会重复。我想在我的游戏中实现这样的功能,这样它会自动播放,但我不确定从哪里开始 代码/算法必须确认配乐已经结束,并重复播放,记住,一旦我创建了gamesettings and sounds(游戏设置和声音)子菜单,用户可以在其中更改声音等,它还将连接更多的代码。这就是我到目前为止所做的: static public WindowsMediaPlayer Introthemetune = new WindowsMedi

在我当前的项目中,我的音乐根据游戏状态播放。像大多数游戏一样,一旦配乐结束,它就会重复。我想在我的游戏中实现这样的功能,这样它会自动播放,但我不确定从哪里开始

代码/算法必须确认配乐已经结束,并重复播放,记住,一旦我创建了gamesettings and sounds(游戏设置和声音)子菜单,用户可以在其中更改声音等,它还将连接更多的代码。这就是我到目前为止所做的:

static public WindowsMediaPlayer Introthemetune = new WindowsMediaPlayer();

public LaunchScreen()
{
    this.Opacity = 0;
    InitializeComponent();
    Introthemetune.URL = "Finalised Game Soundtrack.mp3";
}

你可以用两种方法

1。订阅PlayStateChange事件

您需要订阅
PlayStateChange事件
并检查
NewState

Introthemetune.PlayStateChange += Introthemetune_PlayStateChange;

private void Introthemetune_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
  if(e.newState == 8)
  {
    // Play Again
  }
}
您可以阅读更多关于不同播放状态的信息

2。设置循环模式。

最简单的方法是设置循环模式

Introthemetune.settings.setMode("loop", true);
Introthemetune.URL = "Finalised Game Soundtrack.mp3";

这将确保连续重复播放曲目

游戏框架内置了这些功能,还有一些更有趣的功能,比如根据游戏状态从一段音乐转换到另一段音乐。@RobertHarvey好的,那我该怎么做呢。目前无法使用.NET framework以外的其他框架,因为我无法在我的学校计算机上安装这些框架。请着手处理
WindowsMediaPlayer上的
PlayerStateChange
事件?我假设这是来自
WMPLib.dll
?@NetMage好的,谢谢