Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 16

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

25.12.2013, 01:37. Показов 4567. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Программирование начал осваивать недавно. Мне посоветовали начать с VisualBasic 6.0, а затем перейти к более сложным языкам типа С++. Скачал "Самоучитель для начинающих" С.Н. Лукиных, читаю и выполняю практические задачи.

Застрял на выполнении проекта калькулятор. Не могу сделать так, чтобы при нажатии на кнопку воспроизводился звук. Вроде все сделал так, как было написано в книге. Но безрезультатно! Вот коды процедур:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Form_Load()
Звук.DeviceType = "WaveAudio"
Плеер.DeviceType = "Sequencer"
Плеер.FileName = "C:\Windows\Media\onestop.mid"
Плеер.Command = "Open"
Плеер.Command = "Play"
End Sub
 
Private Sub Кл_сложения_Click()
Звук.FileName = "C:\Windows\Media\Windows - восстановление.wav"
Звук.Command = "Open"
Звук.Command = "Sound"
Звук.Command = "Close"
Результат.Text = Val(Число1.Text) + Val(Число2.Text)
End Sub
При нажатии на Кл_сложения должен открываться, звучать и закрываться файл Windows - восстановление.wav, воспроизводимый MMControl с именем Звук посредством WaveAudio.

Есть подозрение что вся беда в несовместимости ПО. У меня Windows 8, и при установке VisualBasic 6.0 произошла какая-то ошибка. Но сообщение об ошибке появилось уже в конце установки и программа работает.

Добавлено через 10 минут

Не по теме:

Есть еще несколько вопросов не по теме, буду очень благодарен если найдутся ответы на них:
1. Как изменить цвет надписей кнопок?
2. После того, как я запрограммировал воспроизведение аудио файла при запуске программы, она стала открываться довольно продолжительное время, примерно 3-5 секунд, это нормально?
3. В старых версиях MS Office был анимированный помощник. Можно ли написать такую же программу на VisualBasic 6.0?



Всем заранее спасибо за внимание, ответы и рекомендации!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2013, 01:37
Ответы с готовыми решениями:

Воспроизведение системного звука при нажатии на JavaScript кнопку
Здравствуйте, коллеги. Возможно ли вызывать системный звук при кликании по JawaScript кнопке, как это происходит в обычном HTML (речь идёт...

Воспроизведение m3u файлов (радио) при нажатии на кнопку по очереди
Здравствуйте ! Я делаю свою программу для прослушивания радио. Никак не могу понять как сделать так чтоб при нажатии на кнопку (кнопка в...

Как сделать, чтобы при первом нажатии на кнопку TButton появлялось одно сообщение, а при втором нажатии - другое?
помогите как сделать в чтобы в кнопке button при первом нажатий вылазило сообщение ShowMessage('Вы ввели неверные данные, повторите...

14
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
25.12.2013, 02:38
Возможно что файла не существует.
Цитата Сообщение от Andrey Nazarov Посмотреть сообщение
1. Как изменить цвет надписей кнопок?
Свойство ForeColor кнопок задает цвет текста
Цитата Сообщение от Andrey Nazarov Посмотреть сообщение
2. После того, как я запрограммировал воспроизведение аудио файла при запуске программы, она стала открываться довольно продолжительное время, примерно 3-5 секунд, это нормально?
Это MMControl так работает с MIDI
Цитата Сообщение от Andrey Nazarov Посмотреть сообщение
3. В старых версиях MS Office был анимированный помощник. Можно ли написать такую же программу на VisualBasic 6.0?
Да. Для этого надо уметь работать с WinApi. Можно двумя способами создать окно нестандартной формы - это регионы, и слоеные окна.
1
Заблокирован
25.12.2013, 02:57
Скачал "Самоучитель для начинающих" С.Н. Лукиных, читаю и выполняю практические задачи.
Учитесь лучше по сайтам и исходникам из Инета.
Залезаете в гугл. Вбиваете, например, "vb 6.0 play wav". И вот Вам куча информации.
Согласитесь, этот метод гораздо эффективнее.
Не говоря о том, что бесплатно качать самоучители, даже такого качества, - нехорошо.

чтобы при нажатии на кнопку воспроизводился звук
Зачем городить городьбу с какими-то плеерами?
Есть же PlaySound().

У меня Windows 8, и при установке VisualBasic 6.0 произошла какая-то ошибка.
Это такой маркетинговый ход, чтобы люди думали, что пользоваться VB 6.0 нельзя, и покупали новые среды.

Как изменить цвет надписей кнопок?
Здесь ситуация иная: штатных путей решения не просматривается, поэтому стоит попытаться зайти издалека.
Зайдите в меню Проект -> Компоненты и добавьте в проект Microsoft Forms 2.0 Object Library.
На панели инструментов появится несколько новых контролов, более наворчоенных, чем обычные.
Будет там и кнопка, позволяющая менять и цвет текста, и цвет фона, и многое другое.

В старых версиях MS Office был анимированный помощник. Можно ли написать такую же программу на VisualBasic 6.0
Вполне.
Помощник - это просто форма без рамки (BorderStyle = 0), на которой рисуется картинка (или видеозапись) с монотонным фоном.
Начиная с версии 2000, в винде есть возможность делать окна полупрозрачными или делать какой-то их цвет фона прозрачным. Вот этот самый цвет и делается прозрачным, чтобы окошко получалось фигурным.
Здесь пример. http://en.kioskea.net/faq/947-... ransparent

Можно и ещё круче сделать, чтобы рисовалась картинка с попиксельной прозрачностью а-ля Windows Aero.
Но пока Вам это не нужно. Да и вообще увлекаться подобными свистоперделками не стоит - времени отнимают много, а толку мало.
А в чрезмерном количестве они даже вредны. Представьте, каково будет пользователю, если у каждого окна будет свой скин.
1
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
25.12.2013, 07:13
Цитата Сообщение от The trick Посмотреть сообщение
Свойство ForeColor кнопок задает цвет текста
У стандартных кнопок нет такого свойства
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
25.12.2013, 09:24
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Водяной Змей Посмотреть сообщение
Помощник - это просто форма без рамки (BorderStyle = 0), на которой рисуется картинка (или видеозапись) с монотонным фоном.
Хм!
Microsoft Agent - это набор программных сервисов, поддерживающих воспроизведение интерактивных анимированных персонажей (а их несколько десятков готовых и разных + можно свои создавать) в рамках интерфейса Windows. Разработчики могут использовать эти персонажи для создания различных интерактивных приложений и справочных систем. В дополнение к поддержке обычного способа ввода информации с помощью клавиатуры и мыши Microsoft Agent предлагает поддержку распознавания голосовой информации, позволяя управлять приложениями на уровне голосовых команд. Персонажи также могут воспроизводить синтезированную речь, аудиофрагменты или текст в специальном окне.
Не знаю почему, но в стандартной поставке с WIN7\8\8.1 Microsoft Agent 2 не включен. Но вполне доступен для отдельного скачивания и установки на свои компьютеры ( кому надо, подскажу где взять).
Так что ни чего не надо рисовать "регионами и прозрачными окнами". Просто установить оригинального Агента и программировать его в соответствии со своими потребностями. А это просто невероятно увлекательно, уж поверьте мне.
3
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
25.12.2013, 11:23
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от SoftIce Посмотреть сообщение
У стандартных кнопок нет такого свойства
Запрограммировался.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Так что ни чего не надо рисовать "регионами и прозрачными окнами"
В конечном итоге все эти программные сервисы делают это с помощью тех же регионов и слоеных окон. А Api изучать надо полюбому я считаю, все равно когда-нибудь ТС захочется чтото что не поддерживает этот сервис. К тому же код для полноценной 32 битной анимации с альфа каналом не такой уж и сложный:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Option Explicit
 
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
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
 
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE As Long = -20
Private Const ULW_ALPHA = &H2
Private Const AB_32Bpp255 = 33488896
 
Dim Frame(20) As StdPicture
 
Private Sub Form_Load()
    Dim i As Long
    For i = 0 To 20
        Set Frame(i) = LoadPicture(App.Path & "\" & Format(i, "Fr0000\.bmp"))
    Next
    SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
End Sub
Private Sub tmrTimer_Timer()
    Static fr As Long, sz As Currency, pt As Currency
    Me.Picture = Frame(fr)
    sz = (Me.ScaleWidth + CCur(Me.ScaleHeight) * 4294967296#) / 10000
    UpdateLayeredWindow Me.hwnd, Me.hDC, pt, sz, Me.hDC, pt, 0, AB_32Bpp255, ULW_ALPHA
    fr = (fr + 1) Mod (UBound(Frame) + 1)
End Sub
Вложения
Тип файла: rar Animation.rar (776.8 Кб, 51 просмотров)
5
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 16
25.12.2013, 11:53  [ТС]
Спасибо всем за помощь! Обязательно отвечу сегодня вечером!
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
25.12.2013, 14:50
Цитата Сообщение от The trick Посмотреть сообщение
код для полноценной 32 битной анимации с альфа каналом не такой уж и сложный
Кто бы спорил? Ещё было бы так же просто сделать поддержку распознавания команд + соответствующая анимация, чтение и вывод текста, в общем, остальные стандартные возможности Microsoft Agent а.
2
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 16
26.12.2013, 02:24  [ТС]
Сообщений по основному вопросу к сожалению оказалось немного, но все равно СПАСИБО!

Цитата Сообщение от The trick Посмотреть сообщение
Возможно что файла не существует.
Пробовал ставить другие файлы, все безрезультатно. Может дело в WaveAudio? Я не знаю что это, вроде как какое-то устройство на звуковой плате. Может этой штуки у меня нет, а есть что-нибудь другое?

Цитата Сообщение от The trick Посмотреть сообщение
Это MMControl так работает с MIDI
А можно как-либо ускорить это?

Цитата Сообщение от The trick Посмотреть сообщение
Да. Для этого надо уметь работать с WinApi. Можно двумя способами создать окно нестандартной формы - это регионы, и слоеные окна.
С этим я позже попробую разобраться, сейчас мне еще рановато наверное. Перешел по ссылке и ничего не понял в том коде. Если есть ссылка для тех, кто только начинает работать с WinApi, где будет подробно описано что к чему, буду очень признателен!

Добавлено через 18 минут
Цитата Сообщение от Водяной Змей Посмотреть сообщение
Не говоря о том, что бесплатно качать самоучители, даже такого качества, - нехорошо.
Вы имеете в виду качество хорошее или плохое? Если плохое, то почему? Мне встречались только положительные отзывы об этой книге.

Цитата Сообщение от Водяной Змей Посмотреть сообщение
Зачем городить городьбу с какими-то плеерами?
Есть же PlaySound().
Мне, как начинающему, хотелось бы изучить все возможности VB. А PlaySound я исследую позже.

Цитата Сообщение от Водяной Змей Посмотреть сообщение
Это такой маркетинговый ход, чтобы люди думали, что пользоваться VB 6.0 нельзя, и покупали новые среды.
Это радует! я уж подумал искать другую версию программы или начать с VB.NET!

Цитата Сообщение от Водяной Змей Посмотреть сообщение
Будет там и кнопка, позволяющая менять и цвет текста, и цвет фона, и многое другое.
Огромнейшее спасибо! А ведь все так просто было! Я уж чуть до позеленения не извелся, думая как изменить цвет текста!

К сожалению не смог оценить то, что было по ссылкам. Там все по английски, а я знаю его очень плохо.

Добавлено через 4 минуты
Цитата Сообщение от Pro_grammer Посмотреть сообщение
кому надо, подскажу где взять
Очень надо! Заранее спасибо! Сложна ли программа в использовании? Где можно почитать о том, как с ней работать?

Добавлено через 8 минут
Еще раз всем спасибо за помощь! И я надеюсь, мне кто-нибудь подскажет, как сделать этот звук при нажатии на кнопку.
0
Заблокирован
26.12.2013, 02:57
Мне встречались только положительные отзывы об этой книге.
Ну это скорее всего отзывы новичков.
Профессиональный программист на VB6 не станет хвалить эту книгу.
(Преподаватели и т.д. обычно непрофессионалы.)
Профессионалу вообще книги не нужны, за очень редкими исключениями.

Мне, как начинающему, хотелось бы изучить все возможности VB. А PlaySound я исследую позже.
Вас смущает, что PlaySound - это из WinAPI?
А то, что без WinAPI не работал бы ни MMControl, ни VB6, ни сама винда бы не загрузилась, Вас не смущает?

я уж подумал искать другую версию программы или начать с VB.NET!
Почему бы не изучать VB.NET и VB6 параллельно?

Там все по английски, а я знаю его очень плохо.
Я тоже его плохо знаю. А то, что в статьях, ещё и стараюсь не читать, даже если по-русски.
Сразу ищу пример.
А там есть пример. Я бы разобрался.

Где можно почитать о том, как с ней работать?
В гугле, который почему-то так не любит администрация форума и вообще мало кто любит.
Может потому что их забанили в гугле?
А Вас случаем не забанили?
Если нет, то Вы догадаетесь, то нужно искать "vb6 microsoft agent 2.0" - для примеров и "microsoft agent 2.0 download" - для скачивания.
Кстати, у меня Win8.1, но папка C:\Windows\Msagent почему-то есть и файлы в ней - тоже.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
26.12.2013, 08:38
Цитата Сообщение от Andrey Nazarov Посмотреть сообщение
Очень надо!
Можно взять тут ( для x86 и x64).

И вообще, лучше не с книжки код брать, который возможно с ошибками набран, а поискать в Интернет подобный рабочий код.
1
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 16
26.12.2013, 12:21  [ТС]
Цитата Сообщение от Водяной Змей Посмотреть сообщение
Вас смущает, что PlaySound - это из WinAPI?
Меня смущает то, что сейчас я вообще не врубаюсь, что такое WinAPI. Я начал учиться программировать 4 дня назад!

Цитата Сообщение от Водяной Змей Посмотреть сообщение
Почему бы не изучать VB.NET и VB6 параллельно?
Всему свое время.

Цитата Сообщение от Водяной Змей Посмотреть сообщение
Я тоже его плохо знаю. А то, что в статьях, ещё и стараюсь не читать, даже если по-русски.
Сразу ищу пример.
А там есть пример. Я бы разобрался.
Ну что мне вам сказать? Восхищаюсь вашей мудростью! Однако сильно сомневаюсь, что даже вы на 4 день обучения программированию могли разобраться в том коде!

Цитата Сообщение от Водяной Змей Посмотреть сообщение
Если нет, то Вы догадаетесь, то нужно искать "vb6 microsoft agent 2.0" - для примеров и "microsoft agent 2.0 download" - для скачивания.
Если искать самостоятельно, то можно скачать запоротую версию программы или поцепить вирус. Проще обратиться к знающим людям, которые посоветую проверенные ссылки!

Добавлено через 1 минуту
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Можно взять тут ( для x86 и x64).
Большое спасибо за помощь!
0
Заблокирован
26.12.2013, 12:29
Меня смущает то, что сейчас я вообще не врубаюсь, что такое WinAPI.
Тогда вообще неясно, что бы Вам не заняться PlaySound().
PlaySound() проще любого плеера, а начинать, очевидно, нужно с простого.

Однако сильно сомневаюсь, что даже вы на 4 день обучения программированию могли разобраться в том коде!
1) Мог.
2) Учитесь экспериментировать. Не читайте текст, а только ищите и пробуйте коды. Туда вставьте, сюда вставьте. За несколько десятков минут что-нибудь да получится.
Если не будете учиться экспериментировать, никогда и не научитесь. А программисту без этого никак.

Если искать самостоятельно, то можно скачать запоротую версию программы или поцепить вирус.
Где гарантия, что знающий человек не пишет вирусов и не кинет Вам нарочно ссылку на вирус?
Я знаю человека, который хорошо разбирается в программировании, уже достаточно много работает на фрилансе, знает аж несколько платформ и сред, но это не мешает ему готовить программы, которые при скачивании встраиваются в браузер и вставляют туда левую рекламу.
Он уверен, что это занятие для профессионала, а вовсе не для школоты, как принято считать некоторыми.
0
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 16
26.12.2013, 13:16  [ТС]
Цитата Сообщение от Водяной Змей Посмотреть сообщение
Тогда вообще неясно, что бы Вам не заняться PlaySound().
PlaySound() проще любого плеера, а начинать, очевидно, нужно с простого.
Хорошо. Где мне его найти? Как я понял, нужно зайти в Проект -> Компоненты и там поставить галочку напротив PlaySound или WinAPI? Но там нет ни того ни другого.
0
Заблокирован
26.12.2013, 13:34
В Компонентах не бывает функций, а только компоненты.
Компонент - это набор функций, констант и др.

Я же кидал ссылку.
Вот ещё раз. http://stackoverflow.com/quest... -playsound
Там достаточно примеров.
Какой Вы программист, если не можете не только сами себе найти пример, но и готовым рабочим примером воспользоваться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.12.2013, 13:34
Помогаю со студенческими работами здесь

Необходимо, чтобы при нажатии на одну из кнопок меню, фрейм с рекламой сворачивался, и разворачивался снова при нажатии на другую кнопку
Задача такая: Есть три фрейма (расположены друг под другом) - это реклама (вверху), меню (посередке) и главная страница (внизу)....

При нажатии на кнопку вывести надпись, при нажатии на другую - сбросить
Создайте программу, которая при нажатии на одну кнопку (объект Button) выводит на этикетку (Label) некоторую надпись, а при нажатии на...

Как при нажатии на кнопку создать еще одну кнопку?
Собственно во прос в выше, я нажимаю на кнопку, рядом должна появится еще одна, как такие вещи вообще реализуются?

При нажатии на кнопку на первой форме, скрывать кнопку на второй
Вот такая проблема товарищи, за простите. Есть VBA код на кнопке авторизация кнопка лежит на форме1 , при нажатию на кнопку нужно чтобы...

Воспроизведение звука при нажатии на клавиши, при работе программы в фоновом режиме
Нужно написать программу, воспроизводящую звук при нажатии на любую клавишу. Только нужно что бы программа работала в фоновом режиме, т.е....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru