powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / заговок wav файлов
8 сообщений из 8, страница 1 из 1
заговок wav файлов
    #34112770
Wavesql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую mmio.
C помощью стандартной структуры WAVEFORMATEX определяю данные wave формата(wFormatTag, nChannels, nSamplesPerSec, nAvgBytesPerSec, BlockAlign,
wBitsPerSample, cbSize).

Подскажите пожалуйста, как определить заголовок RIFF файла:
- идентификатор файла = "RIFF"
- длина файла без этого заголовка
и кусок WAV:
- идентификатор = "WAVE"
- идентификатор = "fmt " = 0x20746D66
- длина этого куска WAV - файла
...
Рейтинг: 0 / 0
заговок wav файлов
    #34112798
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же ссылку давал на формат.
...
Рейтинг: 0 / 0
заговок wav файлов
    #34112858
Wavesql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вот я пробую сделать так:

MMCKINFO mmckinfoFmt;

mmckinfoFmt.ckid = mmioFOURCC('f', 'm', 't', ' ');

if ( mmioDescend(hmmio, &mmckinfoFmt, NULL, MMIO_FINDCHUNK) )
return false;

Console :: WriteLine("fmt: {0}", Convert :: ToString(mmckinfoFmt.ckid) );

На что выдается ошибка при выводе на консоль...
...
Рейтинг: 0 / 0
заговок wav файлов
    #34112967
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WavesqlНу вот я пробую сделать так:

MMCKINFO mmckinfoFmt;

mmckinfoFmt.ckid = mmioFOURCC('f', 'm', 't', ' ');

if ( mmioDescend(hmmio, &mmckinfoFmt, NULL, MMIO_FINDCHUNK) )
return false;

Console :: WriteLine("fmt: {0}", Convert :: ToString(mmckinfoFmt.ckid) );

На что выдается ошибка при выводе на консоль...

Есстественно. Почитайте внимательно про третий параметр.
...
Рейтинг: 0 / 0
заговок wav файлов
    #34113125
Wavesql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
третий параметр в mmioDescend() или третий параметр структуры MMCKINFO?

При таком варианте вывода на экран:
Console :: WriteLine("ckid: {0}", mmckinfoFmt.ckid.ToString() );
Console :: WriteLine("cksize: {0}", mmckinfoFmt.cksize.ToString() );

Получаем результат:
ckid: 544501094
cksize: 16

Почему значение ckid такое большое?
...
Рейтинг: 0 / 0
заговок wav файлов
    #34113187
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wavesqlтретий параметр в mmioDescend() или третий параметр структуры MMCKINFO?


первое
...
Рейтинг: 0 / 0
заговок wav файлов
    #34113499
Wavesql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, почему в этом случае значени ckid и cksize очень большими получаются:

MMCKINFO mmckinfoRiff; MMCKINFO mmckinfoFmt;

mmckinfoRiff -> fccType = mmioFOURCC('W', 'A', 'V', 'E');

if ( mmioDescend(hmmio, (LPMMCKINFO)mmckinfoRiff, NULL, MMIO_FINDRIFF) )
return false;

Console :: WriteLine("ckid: {0}", mmckinfoRiff -> ckid.ToString() );
Console :: WriteLine("cksize: {0}", mmckinfoRiff -> cksize.ToString() );


и здесь значение ckidFmt большое:
mmckinfoFmt -> ckid = mmioFOURCC('f', 'm', 't', ' ');

if ( mmioDescend(hmmio, (LPMMCKINFO)mmckinfoFmt, mmckinfoRiff , MMIO_FINDCHUNK) )
return false;

Console :: WriteLine("ckidFmt: {0}", mmckinfoFmt -> ckid.ToString() );
...
Рейтинг: 0 / 0
заговок wav файлов
    #34113554
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WavesqlПодскажите пожалуйста, почему в этом случае значени ckid и cksize очень большими получаются:

Это его внутреннее дело. Проверяй как обрабатываются функции. Правельно ли передаешь параметры.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / заговок wav файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]