Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 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