Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта. Валерий Алексеевич Жарков
Чтение книги онлайн.
Читать онлайн книгу Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта - Валерий Алексеевич Жарков страница 40
Dim array_btSoundBounce() As Byte
Dim array_btSoundExplode() As Byte
'Загружаем в проект файлы изображений и звуков по такой схеме:
'Создаём объект myAssembly класса Assembly и присваиваем ему
'ссылку на исполняемую сборку нашего приложения:
Dim myAssembly As Assembly = Assembly.GetExecutingAssembly()
'Создаём объект myAssemblyName
'класса System.Reflection.AssemblyName и присваиваем ему
'имя сборки, которое состоит из имени проекта,
'Version, Culture, PublicKeyToken:
Dim myAssemblyName As AssemblyName = myAssembly.GetName()
'Из имени сборки при помощи свойства Name
'выделяем имя проекта типа string:
Dim myName_of_project As String = myAssemblyName.Name
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Загружаем звуковые файлы в массивы:
array_btSoundBounce = Sound.ReadBytesFromStream( _
myAssembly.GetManifestResourceStream( _
myName_of_project + "." + "bounce.wav"))
array_btSoundExplode = Sound.ReadBytesFromStream( _
myAssembly.GetManifestResourceStream( _
myName_of_project + "." + "explode.wav"))
'Воспроизводим звук удара объекта о границы формы:
Sound.Play(array_btSoundBounce)
'Воспроизводим звук взрыва объекта:
'Sound.Play(array_btSoundExplode)
End Sub
В панели Solution Explorer выполняем правый щелчок по имени проекта и в контекстном меню выбираем Add, New Item (или Project, Add New Item). В панели Add New Item выделяем шаблон Code File, в окне Name записываем имя Sound.vb и щёлкаем кнопку Add.
В проект (и в панель Solution Explorer) добавляется этот файл, открывается пустое окно редактирования кода, в которое записываем следующий код.
Листинг 6.13. Файл Sound.vb.
Imports System.IO 'Для класса Stream.
Public Class Sound
'Константы для управления воспроизведением звукового файла:
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_MEMORY = &H4
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10
'Из пространства имён System.Runtime.InteropServices
'импортируем библиотеку winmm.dll и
'объявляем функцию PlaySoundBytes этой библиотеки:
Private Declare Function PlaySoundBytes _
Lib "winmm.dll" Alias "PlaySound" (ByVal szSound() As Byte, _
ByVal hModule As IntPtr, ByVal dwFlags As Integer) As Integer
'Метод для считывания звукового файла:
Public Shared Function ReadBytesFromStream( _
ByRef strBytes As Stream) As Byte()
Dim btRetVal() As Byte
btRetVal = New Byte(strBytes.Length) {}
strBytes.Read(btRetVal, 0, Fix(strBytes.Length))
Return btRetVal
End Function
'Метод для разового воспроизведения звукового файла:
Public Shared Sub Play(ByRef btBytes() As Byte)
PlaySoundBytes(btBytes, IntPtr.Zero, _
SND_ASYNC Or SND_MEMORY)
End Sub
End Class
Этот файл Sound.vb можно использовать во многих приложениях и играх для воспроизведения звуковых файлов, добавляя его в проект по стандартной схеме Project, Add Existing Item.
В режиме выполнения (Build, Build Selection; Debug, Start Without Debugging) мы услышим соответствующее (одноразовое) воспроизведение звукового файла, который мы добавили или непосредственно в проект, или в нашу дополнительную папку Sounds проекта.