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

Чтение книги онлайн.

Читать онлайн книгу Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта - Валерий Алексеевич Жарков страница 36

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

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

и в контекстном меню выбираем Add, New Item. В панели Add New Item выделяем шаблон Code File, в окне Name записываем имя Sound.vb и щёлкаем кнопку Add.

      В проект (и в панель Solution Explorer) добавляется этот файл, открывается пустое окно редактирования кода, в которое записываем следующий код.

      Листинг 6.9. Файл Sound.vb.

      Imports System.IO 'Для класса Stream.

      Public Class Sound

      'Переменная включает и выключает звук:

      Public Shared Enabled As Boolean = True

      'Свойство для приостановки и возобновления звука:

      Public Property EnabledProperty() As Boolean

      Get

      Return Enabled

      End Get

      Set(ByVal value As Boolean)

      Enabled = value

      If (value) Then

      ResumeSound()

      Else

      StopSound()

      End If

      End Set

      End Property

      'Массив для циклического звучания:

      Private loopSound() As Byte = Nothing

      'Массив для одноразового воспроизведения звука:

      Private soundBytes() As Byte

      'Флажки (константы) для управления методами

      'операционной системы Windows CE, а именно,

      'методом PlaySound из библиотеки CoreDll.dll

      'при воспроизведении звукового файла:

      Public Enum Flags

      SND_ALIAS = &H10000

      SND_ALIAS_ID = &H110000

      SND_FILENAME = &H20000

      SND_RESOURCE = &H40004

      SND_SYNC = &H0

      SND_ASYNC = &H1

      SND_NODEFAULT = &H2

      SND_MEMORY = &H4

      SND_LOOP = &H8

      SND_NOSTOP = &H10

      SND_NOWAIT = &H2000

      SND_VALIDFLAGS = &H17201F

      SND_RESERVED = &HFF000000

      SND_TYPE_MASK = &H170007

      End Enum

      'Из пространства имён System.Runtime.InteropServices

      'импортируем библиотеку CoreDll.dll и

      'объявляем функцию PlaySound этой библиотеки:

      Private Declare Function PlaySound _

      Lib "winmm.dll" Alias "PlaySound" (ByVal szSound() As Byte, _

      ByVal hModule As IntPtr, ByVal dwFlags As Integer) As Integer

      'Метод для считывания звукового файла:

      Private Sub readStream(ByVal soundStream As Stream)

      'Создаём массив soundBytes с элементами типа Byte

      'и инициализируем размерность этого массива

      'как длину звукового файла soundStream.Length:

      soundBytes = New Byte(soundStream.Length) {}

      'Из потока soundStream считываем звуковой файл

      'в массив soundBytes:

      soundStream.Read(soundBytes, 0, soundStream.Length)

      End Sub

      'Объявляем метод-конструктор класса Sound

      'с параметром в виде потока soundStream класса Stream:

      Public Sub New(ByVal soundStream As Stream)

      'Вызываем метод для считывания звукового файла:

      readStream(soundStream)

      End Sub

      'Объявляем метод-конструктор класса Sound

      'с параметром в виде пути filename к звуковому файлу:

      Public Sub New(ByVal filename As String)

      Dim execAssem As System.Reflection.Assembly = _

      System.Reflection.Assembly.GetExecutingAssembly()

      Dim soundStream As Stream = _

      execAssem.GetManifestResourceStream(filename)

      If (soundStream Is Nothing) Then

      System.Windows.Forms.MessageBox.Show( _

      "Missing file : " + filename, "Audio Load")

      Return

      End If

      readStream(soundStream)

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