Воспроизведение аудио при нажатии на кнопку - VB

Узнай цену своей работы

Формулировка задачи:

Всем привет! Программирование начал осваивать недавно. Мне посоветовали начать с VisualBasic 6.0, а затем перейти к более сложным языкам типа С++. Скачал "Самоучитель для начинающих" С.Н. Лукиных, читаю и выполняю практические задачи. Застрял на выполнении проекта калькулятор. Не могу сделать так, чтобы при нажатии на кнопку воспроизводился звук. Вроде все сделал так, как было написано в книге. Но безрезультатно! Вот коды процедур:
Листинг программы
  1. Private Sub Form_Load()
  2. Звук.DeviceType = "WaveAudio"
  3. Плеер.DeviceType = "Sequencer"
  4. Плеер.FileName = "C:\Windows\Media\onestop.mid"
  5. Плеер.Command = "Open"
  6. Плеер.Command = "Play"
  7. End Sub
  8. Private Sub Кл_сложения_Click()
  9. Звук.FileName = "C:\Windows\Media\Windows - восстановление.wav"
  10. Звук.Command = "Open"
  11. Звук.Command = "Sound"
  12. Звук.Command = "Close"
  13. Результат.Text = Val(Число1.Text) + Val(Число2.Text)
  14. End Sub
При нажатии на Кл_сложения должен открываться, звучать и закрываться файл Windows - восстановление.wav, воспроизводимый MMControl с именем Звук посредством WaveAudio. Есть подозрение что вся беда в несовместимости ПО. У меня Windows 8, и при установке VisualBasic 6.0 произошла какая-то ошибка. Но сообщение об ошибке появилось уже в конце установки и программа работает.
null
Всем заранее спасибо за внимание, ответы и рекомендации!

Решение задачи: «Воспроизведение аудио при нажатии на кнопку»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Private Declare Function UpdateLayeredWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hdcSrc As Long, pptSrc As Any, ByVal crKey As Long, pblend As Long, ByVal dwFlags As Long) As Long
  4. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  5. Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  6.  
  7. Private Const WS_EX_LAYERED = &H80000
  8. Private Const GWL_EXSTYLE As Long = -20
  9. Private Const ULW_ALPHA = &H2
  10. Private Const AB_32Bpp255 = 33488896
  11.  
  12. Dim Frame(20) As StdPicture
  13.  
  14. Private Sub Form_Load()
  15.     Dim i As Long
  16.     For i = 0 To 20
  17.         Set Frame(i) = LoadPicture(App.Path & "\" & Format(i, "Fr0000\.bmp"))
  18.     Next
  19.     SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
  20. End Sub
  21. Private Sub tmrTimer_Timer()
  22.     Static fr As Long, sz As Currency, pt As Currency
  23.     Me.Picture = Frame(fr)
  24.     sz = (Me.ScaleWidth + CCur(Me.ScaleHeight) * 4294967296#) / 10000
  25.     UpdateLayeredWindow Me.hwnd, Me.hDC, pt, sz, Me.hDC, pt, 0, AB_32Bpp255, ULW_ALPHA
  26.     fr = (fr + 1) Mod (UBound(Frame) + 1)
  27. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы