資源簡介
在Win7/Win8操作系統下,采用最新UAA架構的Wasapi接口,
實現[缺省音頻設備]的[獨占輸出模式],避免信號音質損失,
縮短信號放送延時,支持SPDIF光纖直接輸出AC3和DTS信號;

代碼片段和文件信息
#ifndef?__wasapi_outs_cpp__
#define?__wasapi_outs_cpp__
//-----------------------------------------------------------------------------
#include?“wasapi_outs.h“
//-----------------------------------------------------------------------------
const?GUID?CID_MMDeviceEnumerator??=?__uuidof(MMDeviceEnumerator);
const?GUID?IID_IMMDeviceEnumerator?=?__uuidof(IMMDeviceEnumerator);
const?GUID?IID_IAudioClient????????=?__uuidof(IAudioClient);
const?GUID?IID_IAudioRenderClient??=?__uuidof(IAudioRenderClient);
//-----------------------------------------------------------------------------
static?DWORD?__stdcall?my_thread(PVOID?argp)
{
????wasapi_outs_zone?*zone?=?(wasapi_outs_zone?*)argp;
????DWORD??task_number?=?0;
????HANDLE?task_handle?=?0;
????HANDLE?hevents[2];
????UINT32?buffer_size?=?0;
????PBYTE??buffer_addr?=?0;
????hevents[0]?=?zone->hevent_cancel;
????hevents[1]?=?zone->hevent_buffer;
????//?ready?//////////////////////////////////////////////////////////////////
????ResetEvent(zone->hevent_buffer);
????zone->wasapi_client->GetBufferSize(&buffer_size);
????//?start?//////////////////////////////////////////////////////////////////
????zone->wasapi_render->GetBuffer(buffer_size?&buffer_addr);
????zone->callback_func(buffer_addr?buffer_size?<2?0);
????zone->wasapi_render->ReleaseBuffer(buffer_size?0);
????task_handle?=?AvSetMmThreadCharacteristicsW(L“Pro?Audio“?&task_number);
????zone->wasapi_client->Start();
????//?loops?//////////////////////////////////////////////////////////////////
????while(1)
????{
????????if(WaitForMultipleobjects(2?hevents?FALSE?-1)?==?WAIT_object_0)
????????????break;
????????ResetEvent(zone->hevent_buffer);
????????zone->wasapi_render->GetBuffer(buffer_size?&buffer_addr);
????????zone->callback_func(buffer_addr?buffer_size?<2?0);
????????zone->wasapi_render->ReleaseBuffer(buffer_size?0);
????};
????//?finis?//////////////////////////////////////////////////////////////////
????WaitForSingleobject(zone->hevent_buffer?-1);
????zone->wasapi_render->GetBuffer(buffer_size?&buffer_addr);
????zone->callback_func(buffer_addr?buffer_size?<2?1);
????zone->wasapi_render->ReleaseBuffer(buffer_size?0);
????//?finis?//////////////////////////////////////////////////////////////////
????WaitForSingleobject(zone->hevent_buffer?-1);
????zone->wasapi_render->GetBuffer(buffer_size?&buffer_addr);
????zone->callback_func(buffer_addr?buffer_size?<2?2);
????zone->wasapi_render->ReleaseBuffer(buffer_size?0);
????//?clean?//////////////////////////////////////////////////////////////////
????zone->wasapi_client->Stop();
????if(task_handle?!=?NULL)
????{
????????AvRevertMmThreadCharacteristics(task_handle);
????}
????return?0;
}
//-----------------------------------------------------------------------------
int?__stdcall?wasapi_outs_create(wasapi_outs_zone?**zone)
{
????if(zone?!=?NULL)
????{
????????if
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????9216??2013-04-13?11:06??module.wasapi_outs.vs8\Release\wasapi_outs.dll
?????文件???????1928??2013-04-13?11:06??module.wasapi_outs.vs8\Release\wasapi_outs.exp
?????文件???????3452??2013-04-13?11:06??module.wasapi_outs.vs8\Release\wasapi_outs.lib
?????文件?????248832??2013-04-13?11:06??module.wasapi_outs.vs8\Release\wasapi_outs.pdb
?????文件???????9544??2013-04-13?11:25??module.wasapi_outs.vs8\wasapi_outs\wasapi_outs.cpp
?????文件????????206??2013-04-12?15:46??module.wasapi_outs.vs8\wasapi_outs\wasapi_outs.def
?????文件???????2229??2013-04-13?10:45??module.wasapi_outs.vs8\wasapi_outs\wasapi_outs.h
?????文件???????4285??2013-04-12?13:06??module.wasapi_outs.vs8\wasapi_outs\wasapi_outs.vcproj
?????文件???????1385??2013-04-13?15:13??module.wasapi_outs.vs8\wasapi_outs\wasapi_outs.vcproj.mody-PC.mody.user
?????文件????????899??2013-04-03?11:19??module.wasapi_outs.vs8\wasapi_outs.sln
????..A..H.?????17408??2013-04-13?15:13??module.wasapi_outs.vs8\wasapi_outs.suo
?????目錄??????????0??2013-04-13?11:06??module.wasapi_outs.vs8\Release
?????目錄??????????0??2013-04-14?12:52??module.wasapi_outs.vs8\wasapi_outs
?????目錄??????????0??2013-04-14?12:52??module.wasapi_outs.vs8
-----------?---------??----------?-----??----
???????????????299384????????????????????14
- 上一篇:數據庫高校學籍管理系統
- 下一篇:ET199加密鎖寫狗工具
評論
共有 條評論