Конференція vbstreets - перегляд теми - як накласти програмно один wav файл на інший

Навіщо через DirectX. Можна і так:
Код: Виділити все Option Explicit

'Функції та константи для програвання звуків. Декларації.
Declare Function sndPlaySound Lib "winmm.dll" Alias ​​"sndPlaySoundA" _
# 40; ByVal lpszSoundName As String, ByVal uFlags As Long # 41; As Long
Declare Function sndStopSound Lib "winmm.dll" Alias ​​"sndPlaySoundA" _
# 40; ByVal lpszNull As Long, ByVal uFlags As Long # 41; As Long

'Звук відтворюється синхронно, і функція не повертає _
управління до закінчення його програвання SND_SYNC = H0

'Звук відтворюється асинхронно, функція повертає управління _
відразу після початку відтворення SND_ASYNC = H1

'Для зупинки відтворення необхідно викликати sndPlaySound # 40; # 41; _
c NULL в якості аргументу-імені файлу

'Якщо вказаний файл відсутній, функція неделает нічого SND_NODEFAULT = H2

'Параметр SoundName вказує на звук, образ якого вже _
знаходиться в оперативній пам'яті SND_MEMORY = H4

'Відтворення звуку повторюється до тих пір, поки не буде _
викликана функція sndPlaySound # 40; # 41; c NULL в якості SND_LOOP = H8

'Параметра IpszSoundName. Для роботи цього прапора необхідно _
встановити також прапор SND_ASYNC.

'Якщо звук вже відтворюється, функція не перериває його _
відтворення, а негайно повертає FALSE SND_NOSTOP = H10

Private Sub Command1_Click # 40; # 41;
Dim retcode1 As Integer
Dim retcode2 As Integer
retcode1 = sndPlaySound # 40; ". шлях до файлу \ 1.wav", H0 # 41;
retcode2 = sndPlaySound # 40; ". шлях до файлу \ 2.wav", H0 # 41;
End Sub

hCORe писал (а): Користуючись нагодою, повторюю своє дуже старе питання: як злити кілька файлів .wav в один без втрати звукових даних?


Що значить "злити"?
Якщо мікшувати, то як тоді зрозуміти "без втрати звукових даних"?
Якщо ти їх смікшіруешь, то потім роз'єднати не зможеш.

А якщо маєш на увазі, створити багатоканальний WAV, так можна, в специфікації формату для кількості каналів використовується Integer, тобто їх можна наробити скільки душа бажає. Тільки не факт, що якась інша програма, крім твоєї, зможе його потім відтворити.

Lasciate ogni speranza, voi ch'entrate.

Потрібно з'єднати звукові потоки з декількох WAV'ов в одному файлі

Моду створюють Модок, а поширюють модозвони.

Якщо це звичайний PCM-WAV, і формати ОБОХ файлів однакові, то немає проблем. Перші 44 байта (якщо не помиляюся) - заголовок. Там є розмір даних. Беремо не всі, що після заголовка, а саме за розміром тому, що після даних буває ще інша інформація (рідко). Копіюємо заголовок з одного з файлів, далі його дані, далі дані другого файлу. У заголовку міняємо розмір на новий (сума двох старих).

Моду створюють Модок, а поширюють модозвони.