Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск нескольких вав-файлов. Без исп. Медиа Плейера 
:(
    Опции темы
КЕКС
  Дата 28.7.2005, 12:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне нужно запустить несколько звуковых файлов одновременно.
Например, есть два файла:
- "loop.wav", который я запускаю раз в 10 секунд (это его длинна) с помощью таймера.
- и "bang.wav", который я запускаю при нажатии кнопки (к примеру).

Я использовал это:
Код

Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

... и, где надо, это:

sndPlaySound FileName & ".wav", 1


Но, когда запускается фторой файл, а первый ещё играет, то первый замолкает.

Что делать? Может есть какой-то контрол, типа "Windows Media Player", только который есть на "всех" компах?
smile smile
  Вверх
bom
Дата 28.7.2005, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Решение не претендует на на ФАК, первое что пришло в голову и даже работает smile
Когда надо проиграть файл во время проигрывания другого файла с фоновым звуком, просто запускаешь еще одну инстанцию своей проги с путем к 2 файлу в качестве параметра:
Код

Private Sub Form_Load()
Dim sPath As String
If Len(Command) <> 0 Then
Timer1.Enabled = False
sPath = Command
sndPlaySound sPath, 2
Unload Me
End If
End Sub

Private Sub Timer1_Timer()
sndPlaySound "C:\Loop.wav", 1
End Sub

Private Sub Command1_Click()
Shell App.EXEName & ".exe " & "C:\bang.wav", vbHide
End Sub


Это сообщение отредактировал(а) bom - 28.7.2005, 14:23
PM MAIL   Вверх
cardinal
Дата 28.7.2005, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(bom @ 28.7.2005, 12:16)
Решение не претендует на на ФАК

А мне понравилось smile
Цитата(bom @ 28.7.2005, 12:16)
просто запускаешь еще одну инстанцию своей проги

Как я понял можно просто сделать маленькую прогу, которая тебе будет проигрывать поределенный звук... Прога эта будет отдельным потоком и таким образом играть будут несколько звуков одновременно...

Еще бы сдвиги в коде сделать, чтобы лучше читалось... smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 28.7.2005, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата
Мне нужно запустить несколько звуковых файлов одновременно.
Я делал прогу для играния вав-файлов, мне надо было все наооборот запустил второй - закончил 1-ый играть, третий - закончил второй, как побочный эффект - играли 3 файла.



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
maxim1000
Дата 28.7.2005, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



не уверен насчет ShellExecute в VB, но туда можно сразу имя файла подать
тогда даже маленькой программки не понадобится...


--------------------
qqq
PM WWW   Вверх
Voldemar2004
Дата 28.7.2005, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(maxim1000 @ 28.7.2005, 15:54)
не уверен насчет ShellExecute в VB

Но тогда же будет играть этот файл плейер по умолчанию в винде? Лучше АПИшка.



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Гость_KEKC
Дата 28.7.2005, 17:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я пробывал давно.
Ты наверное не заметил, что программа останавливается, когда вызывает шэлл.

***
Почему все говорят Шэлл-экзекьют?! Это вам не Дэлфи! smile
***
  Вверх
Guest
Дата 28.7.2005, 17:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(cardinal @ 28.7.2005, 15:41)
Прога эта будет отдельным потоком


Не правда. Почему-то нет.
  Вверх
Guest
Дата 28.7.2005, 18:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(bom @ 28.7.2005, 14:16)
Решение не претендует на на ФАК

Конечно! Оно же не верное. smile
  Вверх
bom
Дата 28.7.2005, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Цитата(cardinal @ 28.7.2005, 15:41)
можно просто сделать маленькую прогу, которая тебе будет проигрывать поределенный звук...

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

Цитата
Ты наверное не заметил, что программа останавливается, когда вызывает шэлл
Не заметилsmile Где останавливается?

Цитата(Guest @ 28.7.2005, 18:00)
Оно же не верное
А в чем? Если ты подразумеваешь что решение не очень изящьное, то согласен, а если что - не верное, потому что не работает, то не согласен, лично проверил, все работает. ЗЫ. Может залогинишься?



Цитата(cardinal @ 28.7.2005, 15:41)
Еще бы сдвиги в коде сделать, чтобы лучше читалось...
Учту
smile
Добавлено @ 18:31
Цитата(cardinal @ 28.7.2005, 15:41)
понял можно просто сделать маленькую прогу, которая тебе будет проигрывать поределенный звук...

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

PM MAIL   Вверх
Voldemar2004
Дата 28.7.2005, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Собственно: лепим на форму DirListBox, кнопку, DriveListBox, FileListBox - это все для наглядности - можно и без них smile , кроме MMControl - в этом примере обязательно (Project -> Components -> Controls -> MS Multimedia Control 6.0) P.S.: свойство Pattern у FileListBox'a сделай *.wav. Для еще большей наглядности.

Код

Option Explicit

Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
End Sub

Private Sub Dir1_Change()
    File1.FileName = Dir1.Path
End Sub

Private Sub Command1_Click()

MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False
MMControl1.DeviceType = "WaveAudio"

    MMControl1.FileName = Dir1 + "\" + File1.FileName
    MMControl1.Command = "Open"
    MMControl1.Command = "Play"
      
End Sub

КЕКС, открывай 2 файла wav smile

Скажите, зачем играть сразу 2 файла одновременно? Это же помойка из звуков, какофония.



Это сообщение отредактировал(а) Voldemar2004 - 28.7.2005, 20:37


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.