Составители:
}
/* чтение блока данных */
if( mmioRead( hmmio, (LPSTR)lpData, IDataSize ) != lDataSize )
{
ReportError( hWnd, IDS_CANTREADDATA );
GlobalFreePtr( lpData );
mmioClose( hmmio, 0 ) ;
return( FALSE ) ;
}
Поиск блока data осуществляется аналогично поиску блока fmt. Функция
mmioDescend записывает в переменную mmckinfoData информацию о размере
блока данных. Параметр lDataSize сообщает, какой объем памяти должен быть
выделен и сколько байтов необходимо прочитать из файла.
Для завершения процедуры ReadWaveData нужно закрыть файл и вернуть
три значения: указатель нового объекта в памяти, количество байтов данных в
этом объекте, а также частоту оцифровки:
/* закрыть файл */
mmioClose( hmmio, 0 );
/* задание возвращаемых значений */
*lplpWaveData = lpData;
*lpdwWaveDataSize = (DWORD)lDataSize;
*lpdwSamplesPerSec = pcmWaveFormat.wf.nSamplesPerSec;
return( TRUE ) ;
}
Запись WAV-файла. Функция WriteWaveData переносит звукозапись из
буфера в памяти в файл на диске. Когда пользователь изменяет существующие
аудиоданные или записывает новые, функция WriteWaveData сохраняет
результат. Она выполняет следующие операции:
• открывает файл;
• создает блок RIFF
формата WAVE;
• создает вложенный блок format и заполняет его поля размера и данных;
• создает вложенный блок data и заполняет его поля размера и данных;
• перемещает указатель текущей позиции в конец файла/что приводит к
записи полного размера старшего блока;
• закрывает файл.
/*------------------------------------------------
WRITE WAVE DATA
Запись аудиоданных из буфера в памяти в файл на диске
--------------------------------------------------------------------------*/
BOOL WriteWaveData( HWND
hWnd, // основное окно
LPSTR lpszFileName, // файл назначения
81
} /* чтение блока данных */ if( mmioRead( hmmio, (LPSTR)lpData, IDataSize ) != lDataSize ) { ReportError( hWnd, IDS_CANTREADDATA ); GlobalFreePtr( lpData ); mmioClose( hmmio, 0 ) ; return( FALSE ) ; } Поиск блока data осуществляется аналогично поиску блока fmt. Функция mmioDescend записывает в переменную mmckinfoData информацию о размере блока данных. Параметр lDataSize сообщает, какой объем памяти должен быть выделен и сколько байтов необходимо прочитать из файла. Для завершения процедуры ReadWaveData нужно закрыть файл и вернуть три значения: указатель нового объекта в памяти, количество байтов данных в этом объекте, а также частоту оцифровки: /* закрыть файл */ mmioClose( hmmio, 0 ); /* задание возвращаемых значений */ *lplpWaveData = lpData; *lpdwWaveDataSize = (DWORD)lDataSize; *lpdwSamplesPerSec = pcmWaveFormat.wf.nSamplesPerSec; return( TRUE ) ; } Запись WAV-файла. Функция WriteWaveData переносит звукозапись из буфера в памяти в файл на диске. Когда пользователь изменяет существующие аудиоданные или записывает новые, функция WriteWaveData сохраняет результат. Она выполняет следующие операции: • открывает файл; • создает блок RIFF формата WAVE; • создает вложенный блок format и заполняет его поля размера и данных; • создает вложенный блок data и заполняет его поля размера и данных; • перемещает указатель текущей позиции в конец файла/что приводит к записи полного размера старшего блока; • закрывает файл. /*------------------------------------------------ WRITE WAVE DATA Запись аудиоданных из буфера в памяти в файл на диске --------------------------------------------------------------------------*/ BOOL WriteWaveData( HWND hWnd, // основное окно LPSTR lpszFileName, // файл назначения 81
Страницы
- « первая
- ‹ предыдущая
- …
- 79
- 80
- 81
- 82
- 83
- …
- следующая ›
- последняя »