Т.е. нужно, чтобы во время выполнения макроса был запущен мп3-файл, и только после того, как этот файл проиграется о конца, макрос дальше продолжит свое выполнение.
Как воспроизвести MP3-файл и дождаться его завершения?
14.10.2012 09:36:04
|
|
|
|
14.10.2012 11:37:31
Распаковать архив на диск.
|
|
|
|
14.10.2012 12:41:05
Юра,
этот метод не обеспечивает ожидания завершения проигрывания. Если после Call mciExecute("play " & str) поставить например Msgbox "After play" , то сообщение появляется сразу. Надо добавить "wait": Call mciExecute("play " & str & " wait") Воспроизведение аудио/видео с различными параметрами описано, например, тут: |
|
|
|
15.10.2012 22:40:07
{quote}{login=Казанский}
Надо добавить "wait": Call mciExecute("play " & str & " wait") Воспроизведение аудио/видео с различными параметрами описано, например, тут: спасибо! работает perfectly ;) |
|
|
|
15.10.2012 23:18:41
>> что делать если вызываемая функция не предоставляет такой возможности?
А что это за функция? |
|
|
|
16.10.2012 11:10:31
Например, вот:
|
|
|
|
16.10.2012 11:18:31
Не очень понимаю проблему: задавайте тогда тайм-аут на время звучания mp3. Или вызывайте отдельной процедурой.
|
|
|
|
16.10.2012 11:24:45
А еще можно MP3 конвертировать в WAV. И пользоваться вариантами Алексея и Юрия.
Я сам - дурнее всякого примера! ...
|
|
|
|
16.10.2012 11:52:44
Попробуйте из другой процедуры:
sub Макрос1() call макрос2 'дальнейшие действия end sub sub макрос2() 'здесь говорилка end sub |
|
|
|
16.10.2012 11:55:27
Юрий М, okey, чуть попозже попробую.)
|
|
|
|
20.10.2012 09:30:13
Не помогло. ((
Может быть, все-таки есть какой-то способ? Кстати, а можно как-нибудь дождаться конца выполнения командного файла? |
|
|
|
20.10.2012 09:43:10
10 лет назад писал.
Я сам - дурнее всякого примера! ...
|
|
|
|
20.10.2012 15:44:20
{quote}{login=KukLP}{date=20.10.2012 09:43}{thema=}{post}10 лет назад писал.{/post}{/quote}
о чем? ))) |
|
|
|
20.10.2012 15:47:02
слэн, прикольно.) надо подумать над этим.)
|
|
|
|
20.10.2012 16:19:26
Я вообще-то пример выложил, о чем. Вижу, зря старался.
Я сам - дурнее всякого примера! ...
|
|
|
|
20.10.2012 17:14:59
я мог просмотреть... где?
|
|
|
|
20.10.2012 18:57:24
Я один вижу свой файл в посте от 20.10.2012, 09:43?
Я сам - дурнее всякого примера! ...
|
|
|
|
17.12.2012 21:12:00
KukLP, спасибо. еще как пригодилось.))
в общем, кажется, я нашел пока что самый лучший способ воспроизведения mp3. спасибо чуваку с основная проблема всех перечисленных до этого метотов - они не позволяют прервать воспроизведение файла, пока он не доиграет до конца и не передаст уравление следующему оператору в скрипте. речь, конечно же, идет о синхронном воспроизведении, когда такое ожидание необходимо (в асинхронном такой проблемы нет, т.к. воспроизведение можно прервать посылом специальной команды в любой момент). но что делать, когда пользователь хочет прервать операцию, именно когда выполнение скрипта приостонавливается на время звучания? вот пример такого кода: <EM><FONT color=#99000><STRONG>Код в сообщении ниже. Автору: не нужно вкладывать в сообщение длинные листинги.</STRONG></FONT> - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM> пару комментов... PlayOneInChain запускает проигрывание файла (при этом получение короткого имени файла необходимо, т.к. mci функция не работает с пробела в имени и пути) в асинхронном режиме, но сразу же уходит в цикл ожидания окончания воспроизведения. в самом же цикле происходит переодическая проверка, не завершилось ли проигрывание, и если завершилось, то происходит выход. при этом цикл можно прервать досрочно сменив глобальный флаг восрпоизведения в одной из процедур вызываемых в doevents. ну вот и все, собственно.) рад буду, если это кому-то окажется полезным ;) |
|
|
|
17.12.2012 21:28:17
Код в текстовом файле.
|
||||
|
|
|||
Читают тему