資源簡介
基于ffmpeg開發的windows錄屏軟件,同時錄制桌面、麥克風、系統聲音并合成MP4文件,Visual Studio版本最低vs2015,啟動前請修改本地的聲音捕獲設備名稱。
代碼片段和文件信息
//-------------------------------------------------------------------------
//?File:?AecKsBinder.cpp
//?
//?Desciption:?Definition?of?audio?devices?binding?functions?
//
//?Copyright?(c)?2004-2006?Microsoft?Corporation.?All?rights?reserved.
//---------------------------------------------------------------------------
#include?“stdafx.h“
#include?“AecKsbinder.h“
#include?“strsafe.h“
#include?“functiondiscoverykeys.h“???????????//?PKEY_Device_FriendlyName
#ifndef?IF_FAILED_JUMP
#define?IF_FAILED_JUMP(hr?label)?if(FAILED(hr))?goto?label;
#endif?
#ifndef?IF_FAILED_RETURN
#define?IF_FAILED_RETURN(hr)?if(FAILED(hr))?return?hr;
#endif?
///////////////////////////////////////////////////////////////////////////
//
//?Function:
//??????DeviceBindTo
//
//?Description:
//??????Bind?device?to?an?IAudioClient?interface.
//
//??Parameters:
//??????eDataFlow:?eRender?for?render?device?eCapture?for?capture?device
//??????iDevIdx:?Index?of?device?in?the?enumeration?list.?If?it?is?-1?use?default?device?
//??????ppVoid:?pointer?pointer?to?IAudioClient?interface.
//??????ppszEndpointDeviceId:?Device?ID.?Caller?is?responsible?for?freeing?memeory
//??????????????using?CoTaskMemoryFree.?If?can?be?NULL?if?called?doesn‘t?need?this?info.
//
//?Return:
//??????S_OK?if?successful
//
///////////////////////////////////////////////////////////////////////////////
HRESULT?DeviceBindTo(
????????EDataFlow?eDataFlow????//?eCapture/eRender
????????INT?iDevIdx????????//?Device?Index.?-1?-?default?device.?
????????IAudioClient?**ppAudioClient????//?pointer?pointer?to?IAudioClient?interface
????????IAudioEndpointVolume?**ppEndpointVolume
????????WCHAR**?ppszEndpointDeviceId)???//?Device?ID.?Need?to?be?freed?in?caller?with?CoTaskMemoryFree?if?it?is?not?NULL
{
????HRESULT?hResult;
????CComPtr?spEnumerator;
????CComPtr?spEndpoints;????
????CComPtr?spDevice;
????WCHAR?*pszDeviceId?=?NULL;
????if?(ppAudioClient?==?NULL)?
????????return?E_POINTER;
????
????*ppAudioClient?=?NULL;
????hResult?=?spEnumerator.CoCreateInstance(__uuidof(MMDeviceEnumerator));
????IF_FAILED_JUMP(hResult?Exit);
????//?use?default?device
????if?(iDevIdx?0?)
????{
????????hResult?=?spEnumerator->GetDefaultAudioEndpoint(eDataFlow?eConsole?&spDevice);
????????IF_FAILED_JUMP(hResult?Exit);
????}else{
????????//?User?selected?device
????????hResult?=?spEnumerator->EnumAudioEndpoints(eDataFlow?DEVICE_STATE_ACTIVE?&spEndpoints);
????????IF_FAILED_JUMP(hResult?Exit);
????????hResult?=?spEndpoints->Item(iDevIdx?&spDevice);
????????IF_FAILED_JUMP(hResult?Exit);
????}
????//?get?device?ID?and?format
????hResult?=?spDevice->GetId(&pszDeviceId);
????IF_FAILED_JUMP(hResult?Exit);
????//?Active?device
????hResult?=?spDevice->Activate(__uuidof(IAudioClient)?CLSCTX_INPROC_SERVER?NULL?(void**)ppAudioClient);
????IF_FAILED_JUMP(hResult?Exit);
????if?(ppEndpointVolu
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-11-08?23:20??Recorder\
?????文件????????2373??2019-11-08?22:27??Recorder\.gitignore
?????目錄???????????0??2019-09-02?18:24??Recorder\.vs\
?????目錄???????????0??2019-09-02?18:24??Recorder\.vs\Recorder\
?????目錄???????????0??2019-09-02?18:24??Recorder\.vs\Recorder\v14\
?????文件??????122368??2019-11-08?23:20??Recorder\.vs\Recorder\v14\.suo
?????目錄???????????0??2019-09-03?09:57??Recorder\ffmpeg\
?????目錄???????????0??2019-09-03?09:57??Recorder\ffmpeg\bin\
?????文件????34023936??2019-08-08?13:47??Recorder\ffmpeg\bin\avcodec-58.dll
?????文件?????1405440??2019-08-08?13:47??Recorder\ffmpeg\bin\avdevice-58.dll
?????文件?????7290368??2019-08-08?13:47??Recorder\ffmpeg\bin\avfilter-7.dll
?????文件?????9884160??2019-08-08?13:47??Recorder\ffmpeg\bin\avformat-58.dll
?????文件??????780800??2019-08-08?13:47??Recorder\ffmpeg\bin\avutil-56.dll
?????文件??????124928??2019-08-08?13:47??Recorder\ffmpeg\bin\postproc-55.dll
?????文件??????316928??2019-08-08?13:47??Recorder\ffmpeg\bin\swresample-3.dll
?????文件??????518656??2019-08-08?13:47??Recorder\ffmpeg\bin\swscale-5.dll
?????目錄???????????0??2019-09-02?18:25??Recorder\ffmpeg\include\
?????目錄???????????0??2019-09-02?18:25??Recorder\ffmpeg\include\libavcodec\
?????文件????????1207??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\ac3_parser.h
?????文件????????1354??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\adts_parser.h
?????文件??????214339??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\avcodec.h
?????文件????????2570??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\avdct.h
?????文件????????3111??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\avfft.h
?????文件????????2853??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\d3d11va.h
?????文件????????4044??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\dirac.h
?????文件????????3715??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\dv_profile.h
?????文件????????2361??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\dxva2.h
?????文件????????1650??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\jni.h
?????文件????????3450??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\mediacodec.h
?????文件????????3763??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\qsv.h
?????文件????????2297??2019-08-08?13:47??Recorder\ffmpeg\include\libavcodec\vaapi.h
............此處省略229個文件信息
- 上一篇:畫nc文件的軟件
- 下一篇:[龍書]編譯原理技術與工具 (詳細書簽掃描版)
評論
共有 條評論