Валерий Алексеевич Жарков

Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта


Скачать книгу

можно добавить в проект ещё много звуковых файлов, которые мы желаем послушать во время выполнения приложения или игры.

      По второму, закомментированному далее в программе, варианту эти файлы мы не добавляем в проект, а копируем во внешнюю папку с именем, например, Sounds, запоминая путь к этой папке, начиная от локального диска, например, D.

      Теперь в панели Properties (для формы Form1) на вкладке Events дважды щёлкаем по имени события Load (Загрузка).

      Появляется файл Form1.vb с шаблоном метода Form1_Load, который после записи нашего кода принимает следующий вид.

      Листинг 6.1. Метод для загрузки и воспроизведения звуковых файлов.

      Private Sub Form1_Load(ByVal sender As System.Object, _

      ByVal e As System.EventArgs) Handles MyBase.Load

      'Загружаем звуковые файлы формата (.wav)

      'по 1-му варианту непосредственно из проекта:

      My.Computer.Audio.Play("..\..\drumpad-crash.wav")

      'Загружаем звуковые файлы формата (.wav)

      'по 2-му варианту из внешней папки:

      'My.Computer.Audio.Play( _

      '"D:\MyDocs\Sounds\drumpad-bass_drum.wav")

      End Sub

      Видно, что в строке:

      My.Computer.Audio.Play("..\..\drumpad-crash.wav")

      мы используем пространство имён My, свойство Computer, свойство Audio и метод Play (рис. 6.2).

      Оператор “..\..\” называется relative path – путь относительно (внутри) проекта.

      Рис. 6.2. Подсказка с методом Play.

      В режиме выполнения (Build, Build Selection; Debug, Start Without Debugging) мы услышим соответствующее (одноразовое) воспроизведение звукового файла, который мы добавили непосредственно в проект (а не в дополнительную папку Sounds проекта).

      Если в приведённый выше шаблон метода Form1_Load мы загрузим подряд два файла, как показано ниже:

      Private Sub Form1_Load(ByVal sender As System.Object, _

      ByVal e As System.EventArgs) Handles MyBase.Load

      My.Computer.Audio.Play("..\..\drumpad-crash.wav")

      My.Computer.Audio.Play("..\..\drumpad-bass_drum.wav")

      End Sub

      то в режиме выполнения мы услышим только второй звуковой файл.

      Чтобы мы услышали сначала полностью первый звуковой файл, а затем второй звуковой файл, мы должны в методе Play в качестве второго параметра использовать константу WaitToComplete из перечисления режимов AudioPlayMode, как показано в следующем коде.

      Листинг 6.2. Метод для загрузки и воспроизведения звуковых файлов.

      Private Sub Form1_Load(ByVal sender As System.Object, _

      ByVal e As System.EventArgs) Handles MyBase.Load

      My.Computer.Audio.Play("..\..\drumpad-crash.wav", _

      AudioPlayMode.WaitToComplete)

      My.Computer.Audio.Play("..\..\drumpad-bass_drum.wav")

      End Sub

      Подчеркнём следующее. Чтобы все игровые действия прекратились на время исполнения мелодии, мы должны в методе Play в качестве второго параметра использовать уже применённую выше константу WaitToComplete из перечисления режимов AudioPlayMode, как показано в следующем коде.

      Листинг 6.3. Метод для загрузки и воспроизведения звуковых файлов.

      Private Sub Form1_Load(ByVal sender As System.Object, _

      ByVal e As System.EventArgs) Handles MyBase.Load

      My.Computer.Audio.Play("..\..\drumpad-crash.wav", _

      AudioPlayMode.WaitToComplete)

      End Sub

      Чтобы мы услышали непрерывное циклическое (Loop) воспроизведение звукового файла, мы должны в методе Play в качестве второго параметра использовать константу BackgroundLoop из перечисления режимов AudioPlayMode, как показано в следующем коде.

      Листинг 6.4. Метод для загрузки и воспроизведения звуковых файлов.

      Private Sub Form1_Load(ByVal sender As System.Object, _

      ByVal e As