资源简介

应用Directshow SDK 用c++语言实现音频采集功能

资源截图

代码片段和文件信息

// AudioFormat.cpp : implementation file
//

#include “stdafx.h“
#include “Recorder.h“
#include “AudioFormat.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAudioFormat dialog

extern CRecorderApp theApp;



//-----------------------------------------------------------------------------
// Function-prototypes
//-----------------------------------------------------------------------------


HRESULT ScanAvailableInputFormats();
VOID    GetWaveFormatFromIndex( INT nIndex WAVEFORMATEX* pwfx );
HRESULT FillFormatListBox( HWND hListBox BOOL* aFormatSupported );
VOID    ConvertWaveFormatToString( WAVEFORMATEX* pwfx TCHAR* strFormatName );
HRESULT CreateCaptureBuffer( WAVEFORMATEX* pwfxInput );
HRESULT InitNotifications();


//-----------------------------------------------------------------------------
// Name: GetWaveFormatFromIndex()
// Desc: Returns 20 different wave formats based on nIndex
//-----------------------------------------------------------------------------
VOID GetWaveFormatFromIndex( INT nIndex WAVEFORMATEX* pwfx )
{
    INT iSampleRate = nIndex / 4;
    INT iType = nIndex % 4;
    
    switch( iSampleRate )
    {
    case 0: pwfx->nSamplesPerSec = 48000; break;
    case 1: pwfx->nSamplesPerSec = 44100; break;
    case 2: pwfx->nSamplesPerSec = 22050; break;
    case 3: pwfx->nSamplesPerSec = 11025; break;
    case 4: pwfx->nSamplesPerSec =  8000; break;
    }
    
    switch( iType )
    {
    case 0: pwfx->wBitsPerSample =  8; pwfx->nChannels = 1; break;
    case 1: pwfx->wBitsPerSample = 16; pwfx->nChannels = 1; break;
    case 2: pwfx->wBitsPerSample =  8; pwfx->nChannels = 2; break;
    case 3: pwfx->wBitsPerSample = 16; pwfx->nChannels = 2; break;
    }
    
    pwfx->nBlockAlign = pwfx->nChannels * ( pwfx->wBitsPerSample / 8 );
    pwfx->nAvgBytesPerSec = pwfx->nBlockAlign * pwfx->nSamplesPerSec;
}



//-----------------------------------------------------------------------------
// Name: ConvertWaveFormatToString()
// Desc: Converts a wave format to a text string
//-----------------------------------------------------------------------------
VOID ConvertWaveFormatToString( WAVEFORMATEX* pwfx TCHAR* strFormatName )
{
    wsprintf( strFormatName 
        TEXT(“%u Hz %u-bit %s“) 
        pwfx->nSamplesPerSec 
        pwfx->wBitsPerSample 
        ( pwfx->nChannels == 1 ) ? TEXT(“Mono“) : TEXT(“Stereo“) );
}


//-----------------------------------------------------------------------------
// Name: FillFormatListBox()
// Desc: Fills the format list box based on the availible formats
//-----------------------------------------------------------------------------
HRESULT FillFormatListBox( HWND hListBox BOOL* aFormatSupported )
{
    TCHAR        strFormatName[255];
    WAVEFORMATEX wfx;
    DWORD        dw

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     272820  2002-12-04 01:07  CaptureSound\Recorder\amstrmid.lib

     文件      10763  2008-11-17 18:48  CaptureSound\Recorder\AudioFormat.cpp

     文件       1318  2008-11-17 18:26  CaptureSound\Recorder\AudioFormat.h

     文件       3748  2008-11-16 21:53  CaptureSound\Recorder\CaptureDevices.cpp

     文件       1335  2008-11-16 21:52  CaptureSound\Recorder\CaptureDevices.h

     文件       2466  2002-12-04 01:25  CaptureSound\Recorder\d3d8.lib

     文件       3010  2002-12-04 01:22  CaptureSound\Recorder\d3d9.lib

     文件     614522  2002-12-04 01:31  CaptureSound\Recorder\d3dx.lib

     文件    2151212  2002-12-04 01:26  CaptureSound\Recorder\d3dx8.lib

     文件      53414  2002-12-04 01:28  CaptureSound\Recorder\d3dx8d.lib

     文件    2679888  2002-12-04 01:28  CaptureSound\Recorder\d3dx8dt.lib

     文件    4383332  2002-12-10 22:25  CaptureSound\Recorder\d3dx9.lib

     文件      72100  2002-12-10 22:25  CaptureSound\Recorder\d3dx9d.lib

     文件    5146120  2002-12-10 22:25  CaptureSound\Recorder\d3dx9dt.lib

     文件     615364  2002-12-04 01:34  CaptureSound\Recorder\d3dxd.lib

     文件       1722  2002-11-12 20:15  CaptureSound\Recorder\d3dxof.lib

     文件       4540  2002-12-04 01:11  CaptureSound\Recorder\ddraw.lib

     文件     126296  2009-05-08 11:11  CaptureSound\Recorder\Debug\AudioFormat.obj

     文件       8796  2009-05-08 11:13  CaptureSound\Recorder\Debug\BuildLog.htm

     文件     114713  2009-05-08 11:11  CaptureSound\Recorder\Debug\CaptureDevices.obj

     文件     103351  2009-05-08 11:11  CaptureSound\Recorder\Debug\dsutil.obj

     文件      74389  2009-05-08 11:11  CaptureSound\Recorder\Debug\dxutil.obj

     文件         67  2009-05-08 11:13  CaptureSound\Recorder\Debug\mt.dep

     文件     798208  2009-05-08 11:13  CaptureSound\Recorder\Debug\Recorder.exe

     文件        920  2009-05-08 11:13  CaptureSound\Recorder\Debug\Recorder.exe.embed.manifest

     文件        984  2009-05-08 11:13  CaptureSound\Recorder\Debug\Recorder.exe.embed.manifest.res

     文件        861  2009-05-08 11:13  CaptureSound\Recorder\Debug\Recorder.exe.intermediate.manifest

     文件    2983064  2009-05-08 11:13  CaptureSound\Recorder\Debug\Recorder.ilk

     文件     121739  2009-05-08 11:11  CaptureSound\Recorder\Debug\Recorder.obj

     文件   25231360  2009-05-08 11:10  CaptureSound\Recorder\Debug\Recorder.pch

............此处省略62个文件信息

评论

共有 条评论