Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
1

Как воспроизводить два звука одновременно и регулировать их громкость?

29.01.2013, 21:03. Показов 1594. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как воспроизводить два звука одновременно и регулировать их громкость?

Например, звучит в игре shoot.wav после события Form_MouseDown, и при этом происходит событие Image1.Click (игрок попал по врагу) и звучит звук pain.wav, то последний закрывает первый звук. Это не очень хорошо звучит.
Ещё хуже, когда я делаю звук фоновой звук (вроде шума леса, где все стрельба происходит), то после первого выстрела он пропадает. А нужно, чтобы он был постоянен, т.е. если даже сам файл был бы длительностью 5 секунд, он повторялся (For i=1 To 10000000 сделать?) и во время выстрела лишь делался тише.

Использую такой код:
Visual Basic
1
2
3
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
 
sndPlaySound App.Path & "\sounds\shoot.wav", &H1 Or &H2
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.01.2013, 21:03
Ответы с готовыми решениями:

Как регулировать громкость из программы ?
Кто поможет! Как регулировать громкость из программы ? Долгие мучения и изучения пока ни к чему не...

Как регулировать громкость из программы ?
Кто поможет! Как регулировать громкость из программы ?

Как регулировать громкость проигрываемого видеофайла?
Помогите. Как можно регулировать громкость проигрываемого видеофайла? Зарание благодарен.

Как проиграть два и более звука одновременно
кнонибудь знает как в шарпе проиграть два и более звука одновременно?

8
es geht mir gut
 Аватар для SoftIce
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.01.2013, 07:47 2
Лучший ответ Сообщение было отмечено как решение

Решение

Попробуй
Вложения
Тип файла: rar 2.rar (484.3 Кб, 31 просмотров)
3
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18018 / 7719 / 892
Регистрация: 25.12.2011
Сообщений: 11,497
Записей в блоге: 16
30.01.2013, 18:13 3
Лучший ответ Сообщение было отмечено как решение

Решение

У меня в системе не было этой библиотеки.

Выкладываю, на всякий случай.

А за код, SoftIce, спасибо.
Вложения
Тип файла: rar dx8vb.rar (393.3 Кб, 22 просмотров)
3
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
30.01.2013, 21:45  [ТС] 4
SoftIce, спасибо за код! Только вот зачем нужна библиотека Thumbs.dll?

Кстати, у меня проект не запускается. Сначала не было dvx8vb.dll, сейчас уже скачал, но:

Visual Basic
1
2
3
4
5
6
Private Sub Sound(ByVal numFile As Integer, ByVal DSMODE As CONST_DSBPLAYFLAGS)
 Set DS = DX.DirectSoundCreate(vbNullString)
 DS.SetCooperativeLevel Me.hWnd, DSSCL_NORMAL
 Set aBUF(numFile) = DS.CreateSoundBufferFromFile(fPath(numFile), BUF)
 aBUF(numFile).Play DSMODE
End Sub
Ошибка тут во 2 строке, ActiveX компонент не может создать объект. В чем может быть дело?
0
es geht mir gut
 Аватар для SoftIce
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.01.2013, 22:18 5
Цитата Сообщение от Craw Посмотреть сообщение
Только вот зачем нужна библиотека Thumbs.dll
Это где такая?
Вот что надо подключить, и то не факт , что на всех системах будет работать.
Dragokas выложил библиотеку
Миниатюры
Как воспроизводить два звука одновременно и регулировать их громкость?  
1
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
31.01.2013, 00:01  [ТС] 6
Да, подключил и все работает теперь!
А Thumbs.dll прилагался вместе с проектом тут.
Миниатюры
Как воспроизводить два звука одновременно и регулировать их громкость?  
0
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
31.01.2013, 20:40  [ТС] 7
Мне теперь файл dx8vb.dll нужно вместе с готовой игрой поставлять вместе?

Добавлено через 20 часов 37 минут
Неприятно писать опять 3 сообщение подряд, выглядит глупо. Но я столкнулся с проблемой при установке этого кода в свой проект сейчас. Выдает много ошибок в разных местах, хотя вроде бы все и правильно. Приведу примеры кода из игры, я сам ошибок не вижу.

При запуске программы выводит ошибку здесь в 6 строке. Если же её убрать, будет в 7 строке и т.д.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Private Sub Form_Load()
' объявляется путь ко всем звукам в игре
fPath(2) = App.Path + "\sounds\msg_1.wav"
fPath(3) = App.Path + "\sounds\msg_2.wav"
fPath(4) = App.Path + "\sounds\msg_3.wav"
fPath(5) = App.Path + "\sounds\shoots\pistol_1.wav"
fPath(6) = App.Path + "\sounds\shoots\pistol_2.wav"
fPath(7) = App.Path + "\sounds\shoots\pistol_3.wav"
fPath(8) = App.Path + "\sounds\shoots\pistol_4.wav"
fPath(9) = App.Path + "\sounds\shoots\2_pistol_1.wav"
fPath(10) = App.Path + "\sounds\shoots\2_pistol_2.wav"
fPath(11) = App.Path + "\sounds\shoots\shotgun_1.wav"
fPath(12) = App.Path + "\sounds\shoots\shotgun_1.wav"
fPath(13) = App.Path + "\sounds\shoots\shotgun_1.wav"
fPath(14) = App.Path + "\sounds\shoots\submachinegun_1.wav"
fPath(15) = App.Path + "\sounds\shoots\submachinegin_2.wav"
fPath(16) = App.Path + "\sounds\shoots\machinegun_1.wav"
fPath(17) = App.Path + "\sounds\shoots\machinegun_1.wav"
fPath(18) = App.Path + "\sounds\shoots\machinegun_1.wav"
fPath(19) = App.Path + "\sounds\fon.wav"
fPath(20) = App.Path + "\sounds\pain\pain_1.wav"
fPath(21) = App.Path + "\sounds\pain\pain_2.wav"
fPath(22) = App.Path + "\sounds\pain\pain_3.wav"
fPath(23) = App.Path + "\sounds\pain\pain_4.wav"
fPath(24) = App.Path + "\sounds\pain\pain_5.wav"
' это чудо потом уберу, играет одно и то же
fPath(25) = App.Path + "\sounds\lose_1.wav"
fPath(26) = App.Path + "\sounds\lose_1.wav"
fPath(27) = App.Path + "\sounds\lose_1.wav"
fPath(28) = App.Path + "\sounds\lose_1.wav"
fPath(29) = App.Path + "\sounds\lose_1.wav"
fPath(30) = App.Path + "\sounds\pain\pl_pain_1.wav"
fPath(31) = App.Path + "\sounds\pain\pl_pain_2.wav"
fPath(32) = App.Path + "\sounds\pain\pl_pain_3.wav"
fPath(33) = App.Path + "\sounds\shell\shell_1.wav"
fPath(34) = App.Path + "\sounds\shell\shell_2.wav"
fPath(35) = App.Path + "\sounds\shell\shell_3.wav"
fPath(36) = App.Path + "\sounds\shell\shell_4.wav"
fPath(37) = App.Path + "\sounds\shell\shell_5.wav"
fPath(38) = App.Path + "\sounds\ric\ric_1.wav"
fPath(39) = App.Path + "\sounds\ric\ric_2.wav"
fPath(40) = App.Path + "\sounds\ric\ric_3.wav"
fPath(41) = App.Path + "\sounds\ric\ric_4.wav"
fPath(42) = App.Path + "\sounds\ric\ric_5.wav"
End Sub
А это то место, где звук должен играть. Ошибок нет, но может тут что-то не так.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
If weapon = 0 Then
Randomize
Pistol = Fix(Rnd * 4)
If Pistol = 0 Then
Sound 5, PO
End If
If Pistol = 1 Then
Sound 6, PO
End If
If Pistol = 2 Then
Sound 7, PO
End If
If Pistol = 3 Then
Sound 8, PO
End If
End If
Несколько раз была ошибка тут в 5 строке:

Visual Basic
1
2
3
4
5
6
Private Sub Sound(ByVal numFile As Integer, ByVal DSMODE As CONST_DSBPLAYFLAGS)
 Set DS = DX.DirectSoundCreate(vbNullString)
 DS.SetCooperativeLevel Me.hWnd, DSSCL_NORMAL
 Set aBUF(numFile) = DS.CreateSoundBufferFromFile(fPath(numFile), BUF)
 aBUF(numFile).Play DSMODE
End Sub
0
es geht mir gut
 Аватар для SoftIce
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
31.01.2013, 21:33 8
Цитата Сообщение от Craw Посмотреть сообщение
При запуске программы выводит ошибку здесь в 6 строке.
Вы наверное массив fPath не увеличили, как раз у меня он был размером 5.

Что там типа fPath(1 to 5 )....... - здесь увеличили число?

Или может файла какого нет?
При таком количестве нетрудно и ошибиться.
0
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
31.01.2013, 22:05  [ТС] 9
Угу, там было
Visual Basic
1
Const cS As Integer = 5
А звуков больше. Поставил вместо пяти 1000, все работает. Я даже и не заметил это просто.
0
31.01.2013, 22:05
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.01.2013, 22:05
Помогаю со студенческими работами здесь

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

SoundPool, регулировать громкость воспроизведения
Ребят возникала такая проблема (не ошибка), я воспроизвожу звук через SoundPool звук но не могу...

Два звука одновременно
Сабж:нужно проиграть несколько wav'ов одновременно. Поиск юзал-есть одна такая тема, но там для...

CRT. Два звука одновременно
Можно ли два звука воспроизвести одновременно - в мелодии на фортепиано одновременно две клавиши...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru