Как я могу предотвратить наложение звука? - PullRequest
0 голосов
/ 01 сентября 2018

Извините за название. Я не мог придумать лучшего. Кроме того, извините за мой английский.

У меня есть эти четыре формы. Формы 2-4 имеют кнопку, которая при нажатии будет воспроизводить определенный звук из формы 1. Временами все кнопки из трех форм будут нажиматься практически одновременно, что приводит к тому, что звук, воспроизводимый из формы 1, накладывается друг на друга. Как мне предотвратить это?

Edit: Когда все кнопки нажаты, я хочу, чтобы звук воспроизводился по очереди. «Аудио 2, 3» должно ждать завершения «Аудио 1», прежде чем они начнут воспроизводиться, а затем «Аудио 3» также должно ждать завершения «Аудио 2». Каждое «Воспроизведение аудио» состоит из синтезатора речи (воспроизводимого с использованием .SpeakAsync) и SoundPlayer (воспроизводится с использованием .PlaySync). На моем интернет-провайдере отключен интернет, поэтому я просто использую свой телефон. Было бы довольно сложно вручную ввести код на телефоне, так что извините за это.

1 Ответ

0 голосов
/ 01 сентября 2018

Привет, я сделал то же самое с игрой, в которой у меня была проблема со звуками, играющими поверх друг друга. В методе, который имел дело со звуками, я сделал это:

SoundPLayer sound = new SoundPlayer(..);
SoundPLayer anotherSound = new SoundPlayer(..);

public async void gameMethod()
{
   sound.Play();
   await Task.Delay(400); //length of sound
   //some code ...
   anotherSound.Play();
}

Это сработало для меня и просто использовало await Task.Delay(..), чтобы добавить больше времени вокруг звуков - не уверен, что это способ сделать это, но это может быть полезно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...