Форум программистов, компьютерный форум, киберфорум
Программирование звука
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
63 / 48 / 12
Регистрация: 28.12.2014
Сообщений: 270

DirectSound DirectX 8 for Visual Basic Type Library

18.08.2015, 14:12. Показов 6779. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Не для кого не секрет, что DirectSound – это инструмент, предназначенный для создания игр, воспроизведения звуковой информации, обработки звука. Насладиться возможностями интерфейса программирования, возможно, например, используя библиотеку DirectX 8 for Visual Basic Type Library. Данный компонент предоставляет VB-ориентированный механизм построения приложений, но не обновляется с выходом новой версии API, т.к. VB6 давно находится в глубоком тылу средств разработки приложений. Второй способ - использовать средство расширения языка – Declare statement, с помощью которого, можно импортировать функции библиотеки Dsound.dll, центральной из которых является метод DirectSoundCreate8(пример для восьмой версии API). Данная процедура, создает объект DirectSound, и возвращает указатель на интерфейс IDirectSound8. Далее, все методы вновь созданного объекта вызываются, как я понял, через этот указатель. Например, в документации для C++ можно встретить натацию типа: «IDirectSound8::SetCooperativeLevel». Где IDirectSound8 – ссылка на интерфейс, SetCooperativeLevel – метод объекта, на который ссылается интерфейс. Концептуально ситуация для VB не новая, но реализация весьма оригинальна. Возможно ли в VB напрямую взаимодействовать с функциями DirectX импортируя их? Как это сделать? Спасибо.

Вот небольшой пример текста, воспроизводящий различные звуковые файлы в формате .wav, создавая несколько вторичных буферов, написанный с подключением DirectX 8 for Visual Basic Type Library.
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
46
47
Option Explicit
Private objDirectX As DxVBLibA.DirectX8, objDirectSound As DxVBLibA.DirectSound8, _
    objSoundBufferStart As DxVBLibA.DirectSoundSecondaryBuffer8, _
    objSoundBufferEnd As DxVBLibA.DirectSoundSecondaryBuffer8, objSoundBufferEntrance _
    As DxVBLibA.DirectSoundSecondaryBuffer8, objSoundBufferExit As DxVBLibA.DirectSoundSecondaryBuffer8, _
    objSoundBufferExclamation As DxVBLibA.DirectSoundSecondaryBuffer8, objSoundBufferFromResource As _
    DxVBLibA.DirectSoundSecondaryBuffer8, udtBufferFlags As DxVBLibA.DSBUFFERDESC
Private Sub cmdEnd_Click()
    Set objSoundBufferEnd = objDirectSound.CreateSoundBufferFromFile(App.Path & "\" & "Windows XP - завершение.wav", _
        udtBufferFlags)
    objSoundBufferEnd.Play CONST_DSBPLAYFLAGS.DSBPLAY_DEFAULT
End Sub
Private Sub cmdEntrance_Click()
    Set objSoundBufferEntrance = objDirectSound.CreateSoundBufferFromFile(App.Path & "\" & "Вход в Windows XP.wav", _
        udtBufferFlags)
    objSoundBufferEntrance.Play CONST_DSBPLAYFLAGS.DSBPLAY_DEFAULT
End Sub
Private Sub cmdExclamation_Click()
    Set objSoundBufferExclamation = objDirectSound.CreateSoundBufferFromFile(App.Path & "\" & "Windows XP - восклицание.wav", _
        udtBufferFlags)
    objSoundBufferExclamation.Play CONST_DSBPLAYFLAGS.DSBPLAY_DEFAULT
End Sub
Private Sub cmdExit_Click()
    Set objSoundBufferExit = objDirectSound.CreateSoundBufferFromFile(App.Path & "\" & "Выход из Windows XP.wav", _
        udtBufferFlags)
    objSoundBufferExit.Play CONST_DSBPLAYFLAGS.DSBPLAY_DEFAULT
End Sub
Private Sub cmdStartButton_Click()
    objSoundBufferStart.Play CONST_DSBPLAYFLAGS.DSBPLAY_DEFAULT
End Sub
Private Sub Form_Load()
    Set objDirectX = New DxVBLibA.DirectX8
    Set objDirectSound = objDirectX.DirectSoundCreate("")
    objDirectSound.SetCooperativeLevel Me.hWnd, CONST_DSSCLFLAGS.DSSCL_NORMAL
    udtBufferFlags.lFlags = CONST_DSBCAPSFLAGS.DSBCAPS_CTRLPAN Or CONST_DSBCAPSFLAGS.DSBCAPS_CTRLFREQUENCY _
        Or CONST_DSBCAPSFLAGS.DSBCAPS_CTRLVOLUME
    Set objSoundBufferStart = objDirectSound.CreateSoundBufferFromFile(App.Path & "\" & "Windows XP - запуск.wav", _
        udtBufferFlags)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    Set objSoundBufferStart = Nothing
    Set objSoundBufferEnd = Nothing
    Set objSoundBufferExit = Nothing
    Set objSoundBufferEntrance = Nothing
    Set objDirectSound = Nothing
    Set objDirectX = Nothing
End Sub
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.08.2015, 14:12
Ответы с готовыми решениями:

Работа с DirectX: Output Type of Class Library
Доброго времени суток. Я новичок в DirectX и C#. Скачал SharpDX с примерами. Эти примеры не запускаются. Выдаёт следующее сообщение: A...

Visual Basic & DirectX
Добрый день. Подскажите пожалуйста, где можно найти литературу насчет создания игр в визуал бейсик с использованием ДиректХ. Желательно, на...

Ошибка 'Run-time error 458. Variable uses an Automation type not supported in Visual Basic'.
Сделал из проекта файл .exe используя 'Compile into Native code'. На компьютерах, где есть VB все работает как надо. Где его нет требует...

5
Модератор
10027 / 3874 / 882
Регистрация: 22.02.2013
Сообщений: 5,819
Записей в блоге: 78
18.08.2015, 15:49
Можно.
0
63 / 48 / 12
Регистрация: 28.12.2014
Сообщений: 270
18.08.2015, 17:25  [ТС]
Т.е необходимо создавать/подключать библиотеку типов с описанием com интерфейсов, и без неё никак?
0
Модератор
10027 / 3874 / 882
Регистрация: 22.02.2013
Сообщений: 5,819
Записей в блоге: 78
18.08.2015, 21:02
Лучший ответ Сообщение было отмечено IDK как решение

Решение

А что тебя смущает? После компиляции она не нужна и не требуется ещё наличие на целевой машине. Это просто описание интерфейсов и функций.
1
63 / 48 / 12
Регистрация: 28.12.2014
Сообщений: 270
19.08.2015, 08:01  [ТС]
А, ну тогда другое дело. Не очень нравится, когда необходимо всё своё таскать с собой. Хотя вопрос решаемый на разных уровнях и сугубо технический.

Не по теме:

Где-то читал, что вы подключали DX11 к VB6. Как успехи? Из чистого любопытства.

0
Модератор
10027 / 3874 / 882
Регистрация: 22.02.2013
Сообщений: 5,819
Записей в блоге: 78
19.08.2015, 11:50
Цитата Сообщение от IDK Посмотреть сообщение
Где-то читал, что вы подключали DX11 к VB6. Как успехи? Из чистого любопытства.
Я собирался делать библиотеку Direct3D10 и 11, пока у меня стоит XP поэтому нет возможности это делать. Пока готово только D3D9 с многими вспомогательными функциями-аналогами из D3DX, написанными на VB6. Проблем с подключением не будет, можно в VB6 использовать хоть D3D12. DirectSound8 - это последняя версия.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.08.2015, 11:50
Помогаю со студенческими работами здесь

Как правильно подключить Microsoft.DirectX.DirectSound
Пишу что то на подобие голосового чата, пытаюсь захватить звук с микрофона. Нашел в интернете пример работы со звуком с помощью using...

Вычисление значений функции двух переменных в Visual Basic - Visual Basic
Помогите пожалуйста! В среде VB написать программу вычисления значений функции двух переменных. Ориентировочный вид окна программы и...

Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net ?
Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net

Visual Basic .Net и Visual Basic 6.0 - В чём разница
В общем возник вопрос: Visual Bisic.Net и Visual Basic - это два разных языка, или же .NET версия это лишь его улучшение. Я так понимаю что...

Visual Basic 6 и Visual Basic .NET - в чем различия?
Visual Basic и Visual studio это не одно и тоже? если нет то в чём разница, по мимо оформления?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel подробные расшифровки по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер