Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как получить звук, отличный от beep?

248
28 декабря 2009 года
Dmitry2064
590 / / 06.12.2006
В процедуре пока использую команду beep.
Но хотелось бы на два разных события слышать 2 варианта звука. Можно ли это реализовать не оч. сложным способом?

Спасибо.
405
29 декабря 2009 года
Dmitrii
554 / / 16.12.2004
Dmitry2064, используйте API-функцию [color=blue]Beep()[/color]. Пример:
Код:
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Sub Sound1()
Call Beep(1300&, 100&)
Call Beep(800&, 100&)
End Sub

Sub Sound2()
Call Beep(800&, 100&)
Call Beep(1300&, 100&)
End Sub
248
30 декабря 2009 года
Dmitry2064
590 / / 06.12.2006
Похоже, что звук должен выходить из динамика системного блока. А мой комп другого форм-фактора - там нет динамиков и большого корпуса. Пэтому тишина. Хотя просто beep (если не создавать privet function "beep") дает звук на колонки, которые подсоединены к линейному выходу звуковой карты.
Хотя на работе есть нормальный системный блок, там и пробую (после пьянок).
А еще вопрос, - насколько сложно воспроизвести некий wav-файл? Чтобы звучало покультурнее.

В любом случае спасибо за помощь.
7
30 декабря 2009 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: Dmitry2064
Хотя просто beep (если не создавать privet function "beep") дает звук на колонки, которые подсоединены к линейному выходу звуковой карты

Разумеется,ведь Beep воспроизводит стандартный системный звук(назначаемый через апплет панели управления),и только в том случае,если его нет,работает системный динамик

Цитата: Dmitry2064
А еще вопрос, - насколько сложно воспроизвести некий wav-файл? Чтобы звучало покультурнее

Элементарно просто.PlaySound и иже с ними
…а вот чтобы культурнее звучало,не воспроизводите всякие матерные файлики,только и всего (=

P.S.Privet functios рулят!:D

248
01 января 2010 года
Dmitry2064
590 / / 06.12.2006
Нашел такой вариант с PlaySound:

Код:
Declare Function sndPlaySound Lib "Winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

'Воспроизведение WAV-Файла (путь/имя файла)
Sub Play_wav(ByVal n As String)
Dim s As Long
's = sndPlaySound(n, 0) 'Воспроизвести
s = sndPlaySound(n, &H1) 'если надо асинхронно
[COLOR="DarkRed"]' тут опять слышится системный звук "дзинь", а не warning.wav...[/COLOR]
End Sub

'ЗАПУСКАЕМ
Sub BeepWarn()
Play_wav "C:\sound\warning.wav"
End Sub


что не так?
7
01 января 2010 года
@pixo $oft
3.4K / / 20.09.2006
Хм,странно,но вроде всё правильно…Проверьте ещё раз путь к файлу и то,что это реально .wav(например,в заголовке должно быть RIFF;также,ЕМНИП,играются только непожатые(т.е. PCM) файлы)
Для интереса можно поставить флаг SND_NODEFAULT–по крайней мере,звука по умолчанию вы слышать не будете
И кстати,какое возвращаемое значение?

Ещё такой вопрос:вы функцию BeepWarn вызываете где-нибудь?:)

Upd:хотя
Цитата:
The specified sound must … be playable by an installed waveform-audio device driver

как бы намекает,что вроде и пожатые файлы можно воспроизвести

248
04 января 2010 года
Dmitry2064
590 / / 06.12.2006
Наверное все же файл был сжат. :( Потому что когда поставил явно "wav", то все сыгралось.

Спасибо большое.

С НГ!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог