mp3 & wav

Тема в разделе "WASM.HEAP", создана пользователем dr_dred, 26 июн 2005.

  1. dr_dred

    dr_dred Сергей

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    301
    Адрес:
    Russia
    Где можно почитать про эти форматы?
     
  2. TaskFall

    TaskFall New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2005
    Сообщения:
    28
    может в RFC ?
     
  3. TaskFall

    TaskFall New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2005
    Сообщения:
    28
    Вот хотя бы это:


    Код (Text):
    1. #include "stdafx.h"
    2. #include "windows.h"   
    3. #include "math.h"  
    4. // подключаем LIB-файл для ф-ции PlaySound
    5. #pragma comment(lib, "winmm.lib")  
    6. // описание заголовка файла WAV  
    7. struct WAVHEADER   
    8. {  
    9.     char    sigRIFF[4];     // должно быть равно "RIFF" 
    10.     DWORD   sizeRIFFch;     // размер чанка RIFF
    11.     char    sigWAVE[4];     // должно быть равно "WAVE" 
    12.     char    sigFMT[4];      // должно быть равно "fmt " 
    13.     DWORD   sizeFMTch;      // размер чанка FMT 
    14.     WORD    wFormatTag;     // категория формата, для PCM = 1   
    15.     WORD    wChannels;      // кол-во каналов: 1-моно 2-стерео   
    16.     DWORD   dwSamplesPerSec;// кол-во сэмплов в сек.   
    17.     DWORD   dwAvgBytesPerSec;// среднее число байт в сек   
    18.     WORD    wBlockAlign;    // выравнивание данных в дата-чанке
    19.     WORD    wBitPerSample;  // бит в сэмпле  
    20.     char    sigDATA[4];     // должно быть равно "data" 
    21.     DWORD   sizeDATAch;     // размер data-чанка
    22. }; 
    23. void SuperBeep(DWORD dwFrequency, DWORD dwMilliSeconds)
    24. {  
    25.     // частота дискретизации = 44100 Гц  
    26.     // кол-во бит на сэмпл = 8  
    27.     // если требуемая частота > 44100 или равна нулю, то выходим  
    28.     if(!dwFrequency || dwFrequency>44100)  
    29.         return;
    30.     // длина дорожки в байтах   
    31.     DWORD numSamples = 44100 / dwFrequency;
    32.        
    33.     // выделяем память под дорожку 
    34.     DWORD size = sizeof(WAVHEADER) + numSamples;   
    35.     void *buff = new char[size ];  
    36.        
    37.     // заполняем WAV-header   
    38.     WAVHEADER *head = (WAVHEADER*)buff;
    39.     strcpy(head->sigRIFF, "RIFF"); 
    40.     strcpy(head->sigWAVE, "WAVE"); 
    41.     head->sizeRIFFch = size - 8;    
    42.     strcpy(head->sigFMT, "fmt ");  
    43.     head->sizeFMTch = 16;  
    44.     head->wFormatTag = 1;  
    45.     head->wChannels = 1; // моно   
    46.     head->dwSamplesPerSec = 44100; 
    47.     head->dwAvgBytesPerSec = 44100;
    48.     head->wBlockAlign = 1; 
    49.     head->wBitPerSample = 8;   
    50.     strcpy(head->sigDATA, "data"); 
    51.     head->sizeDATAch = size;   
    52.     // заполняем дорожку периодом синуса 
    53.     BYTE *samples = (BYTE*)(head+1);   
    54.     for(DWORD i=0; i<numSamples; i++)  
    55.         samples[i] = BYTE(255*sin(6.28*double(i)/double(size)));   
    56.     // проигрываем звук 
    57.     PlaySound((const char*)buff, 0, SND_ASYNC|SND_LOOP|SND_MEMORY);
    58.     // ждём заданное количество миллисекунд   
    59.     Sleep(dwMilliSeconds); 
    60.     // останавливаем звук 
    61.     PlaySound(0, 0, SND_ASYNC);
    62. }  
    63. //////////////////////////////////////////////////////////////////////  ////   
    64. // Тестовый звук - 900 Гц, одна секунда   
    65. int main(int argc, char* argv[])   
    66. {  
    67.     SuperBeep(900, 1000);  
    68.     return 0;  
    69. }
     
  4. BreakPointMAN

    BreakPointMAN New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2005
    Сообщения:
    42
    Адрес:
    Russia
    Есть неплохой сайтик: http://www.wotsit.org

    "This site contains file format information on hundreds of different file types and all sorts of other useful programming information; algorithms, source code, specifications, etc."



    про wav и mp3 там точно есть.
     
  5. dr_dred

    dr_dred Сергей

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    301
    Адрес:
    Russia
    TaskFall

    Во во. Типа такого я ихочу посмотреть.

    BreakPointMAN

    Что-то про mp3 там не нашел. Точнее нашел неработающее.