C # повторяет mp3-файл, как только он закончил - PullRequest
0 голосов
/ 23 января 2019

В моем текущем проекте у меня есть музыка, которая играет в зависимости от состояния игры.Как и в большинстве игр, когда звуковая дорожка заканчивается, она повторяется.Я хотел бы внедрить такую ​​функцию в мою игру, чтобы она автоматически играла, однако я не уверен, с чего начать.

Код / алгоритм должен учитывать тот факт, что звуковая дорожка закончилась, и повторять, помня о том, что к нему также будет подключено больше кода, как только я создаю подменю настроек игры и звуков, где пользователь может изменитьзвуки и т. д. Это то, что у меня есть:

static public WindowsMediaPlayer Introthemetune = new WindowsMediaPlayer();

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

1 Ответ

0 голосов
/ 23 января 2019

Вы можете сделать это двумя способами,

1. Подписаться на событие PlayStateChange

Вам необходимо подписаться на PlayStateChange event и проверить 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";

Это обеспечит непрерывное воспроизведение дорожки.

...