Как подключить кодеки к Медиаплееру?

 
0
 
C++
ava
SerK | 23.11.2016, 21:30
Хочу сделать медиаплеер, чтобы он читал все форматы аудио. Как можно сделать это?
Kommentare (4)
ava
xvr | 24.11.2016, 15:23 #
Использовать DirectShow. Несмотря на название, оно умеет не только 'Show' но и 'Play' (аудио файлов)
Проигрыватель занимает строк 20-30

Собственно вот -

#include <windows.h>
#include <stdio.h>

#include <atlbase.h>

#include <DShow.h>

#include <INITGUID.H>
DEFINE_GUID(CLSID_FilterGraph,
0xe436ebb3, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);

void chk_(HRESULT hr, const char* str)
{
if (hr<0)
  {
   printf("Error %08X in %s\n",hr,str);
   exit(1);
  }
}

#define HR(v) chk_(v,#v)
#define mERROR(msg) chk_(-1,msg)

void run(char* nm)
{
USES_CONVERSION;

CComPtr<IGraphBuilder> graph_builder;
HR(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
                         __uuidof(IGraphBuilder), (void **)&graph_builder));
HR(graph_builder->RenderFile(A2W(nm),NULL));

CComQIPtr<IMediaControl> graph_ctrl(graph_builder);
if (!graph_ctrl) mERROR("Can't get IMediaControl interface from Graph");
HR(graph_ctrl->Run());

getchar(); 
}

int main(int argc, char** argv)
{
if (argc<1) mERROR("Expected file name");
CoInitialize(0);
run(argv[1]);
CoUninitialize();
return 0;
}

Проигрывание - функция run. Под Builder сами переделайте
ava
SerK | 01.12.2016, 17:36 #
Цитата (xvr @  24.11.2016,  15:23 findReferencedText)
Проигрывание - функция run. Под Builder сами переделайте


В Борланде нет библиотек


#include <atlbase.h>
#include <DShow.h>
ava
xvr | 01.12.2016, 18:25 #
Цитата (SerK @  1.12.2016,  17:36 findReferencedText)
В Борланде нет библиотек

Возьмите из Windows SDK. DShow.h точно подойдет, а вместо того, что берется из atlbase.h возьмите встроенные средства самого Borland'а (с COM он работать точно умеет)
ava
SerK | 04.12.2016, 15:08 #
Цитата (xvr @  1.12.2016,  18:25 findReferencedText)
Возьмите из Windows SDK. DShow.h точно подойдет, а вместо того, что берется из atlbase.h возьмите встроенные средства самого Borland'а (с COM он работать точно умеет)


Спасибо за ответ. Но пока что это для меня тёмный лес.В общем буду думать, искать.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  SerK   xvr
advanced
Absenden