Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как подключить кодеки к Медиаплееру? 
:(
    Опции темы
SerK
Дата 23.11.2016, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Хочу сделать медиаплеер, чтобы он читал все форматы аудио. Как можно сделать это?


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
xvr
Дата 24.11.2016, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Использовать 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 сами переделайте

PM MAIL   Вверх
SerK
Дата 1.12.2016, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



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


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

Код

#include <atlbase.h>
#include <DShow.h>



--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
xvr
Дата 1.12.2016, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(SerK @  1.12.2016,  17:36 Найти цитируемый пост)
В Борланде нет библиотек

Возьмите из Windows SDK. DShow.h точно подойдет, а вместо того, что берется из atlbase.h возьмите встроенные средства самого Borland'а (с COM он работать точно умеет)

Добавлено через 3 минуты и 21 секунду
Или попробуйте DSPack
PM MAIL   Вверх
SerK
Дата 4.12.2016, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



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


Спасибо за ответ. Но пока что это для меня тёмный лес.В общем буду думать, искать.



--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.