Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2010, 15:26   #11
Олег*
Пользователь
 
Регистрация: 07.01.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Aent Посмотреть сообщение
Для прекращения воспроизведения зацикленного ассинхронного звука вызовите
Код:
Call PlaySound(vbNullChar, 0,0)
Попробовал! Не получилось!
Вот в таком виде:
Код:
' функция воспроизведения звукового файла
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszSoundName As String, _
ByVal hModule As Long, ByVal uFlags As Long) As Long

Const SND_ALIAS = &H10000
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Const SND_LOOP = &H8
Const SND_NODEFAULT = &H2
Const SND_PURGE = &H40
Const SND_SYNC = &H0

Private Sub Worksheet_Change(ByVal Target As Range)

Select Case Target
    Case 1 ' Воспроизводим звук по кругу.
        Call PlaySound("C:\01.WAV", 0, _
        SND_FILENAME Or SND_LOOP Or SND_ASYNC)
    Case 0 ' Выключаем звук.
        Call PlaySound(vbNullChar, 0, 0)
    Case Else
      ' Ничего не делаем!
End Select

End Sub
снова получается, что звук начинает циклически воспроизводиться при вписывании в ячейку единицы, но не прекращается при вписывании нуля. Снова пришлось выходить из Экселя, чтобы остановить звук.
Олег* вне форума Ответить с цитированием
Старый 25.02.2010, 16:14   #12
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Я описался:
не vbNullChar а VbNullString

Поправил свой пост.

Последний раз редактировалось Aent; 25.02.2010 в 16:17.
Aent вне форума Ответить с цитированием
Старый 25.02.2010, 16:41   #13
Олег*
Пользователь
 
Регистрация: 07.01.2010
Сообщений: 30
По умолчанию

Спасибо, дружище!!!
Теперь всё идеально работает!!!
Когда вставляю в любую ячейку единицу, начинает "верещать", а когда вписываю нуль, замолкает!

Однако, странно, что в таком виде
Код:
        Call PlaySound(vbNullString, 0, 0)
работает, а в таком вот
Код:
        Call PlaySound("", 0, 0)
нет.

Ведь, насколько я понимаю, "" и vbNullString - это одно и то же...

P.S. И вот так вот
Код:
        Call PlaySound(vbNullString, 0, SND_PURGE)
тоже работает! Хотя какая связь между нулём и &H40 ?!

Последний раз редактировалось Олег*; 25.02.2010 в 17:16. Причина: Важное дополнение!
Олег* вне форума Ответить с цитированием
Старый 26.03.2011, 13:53   #14
ОА22
Новичок
Джуниор
 
Регистрация: 26.03.2011
Сообщений: 2
По умолчанию

Хотел бы измерить амплитуду входного звукового сигнала. Для начал создал учебную форму: кнопка пуск, кнопка стоп, метка для выдачи значения строки переменной кода сигнала с микрофона. Выдает одно значение - ноль. Все потому, что не знаю как получить переменную соответствующую какому либо значению параметра сигнала с микрофона.
Option Explicit
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Private Sub Label1_Click()
Print 3
End Sub

Private Sub cmdPlay_Click()
Dim L As Long, Res As String, cb As Long
On Error Resume Next
Res = Space$(128)
L = mciSendString("open new type waveaudio alias sound", Res, 128, cb)
L = mciSendString("set sound time format ms format tag pcm channels 1 samplespersec 22050 bytespersec 44100 alignment 2 bitspersample 16", Res, 128, cb)

L = mciSendString("record sound", Res, 128, cb)
Label1.Caption = L


End Sub

Private Sub cmdStop_Click()
Dim L As Long, Res As String, cb As Long
On Error Resume Next
Res = Space$(128)
L = mciSendString("stop sound", Res, 128, cb)
L = mciSendString("close sound", Res, 128, cb)
Label1.Caption = 8
End Sub
End Sub

Цель - сделать простую микропроцессорную приставку для измерения параметров сигналов от постоянного тока до 1/100 частоты микропроцессора. Посоветуйте кусок кода обрабатывающий входной сигнал в переменную. Спасибо.
ОА22 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Воспроизведение нескольких звуков одновременно GodSmack Общие вопросы Delphi 3 13.08.2009 02:28
Сравнение звуков MakarovAlv Помощь студентам 1 26.06.2009 16:13
Склеивание звуков varvara16 Мультимедиа в Delphi 24 14.11.2008 18:24
Диаграммы звуков Kor Мультимедиа в Delphi 1 30.09.2008 22:43