Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание плеера на с++, плеер mp4 c покадровым воспроизведением 
:(
    Опции темы
nmbl56
Дата 22.10.2011, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



перебрав все плееры, ни один не соответствует требованиям, решил написать плеер, в Виндовс програмировании не специализируюсь, вобщем-то ничего не известно.
Visual Studio 10 (C ++).
куда копать, что использовать ?
нужно: плеер mp4, скриншоты с видео через клавиши, покадровое воспроизведение, обратное воспроизведение, управление скоростью. 
какие классы использовать ?, какие элементы управления ? (и для клавиш также).

Здесь http://msdn.microsoft.com/en-us/library/ee...0(v=VS.85).aspx  что-то всего много, нужно простой плеер. 

PM MAIL   Вверх
vol4ek
Дата 22.10.2011, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


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

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



использовать Direct
Код


#include <dshow.h>
#pragma comment (lib, "strmiids.lib")

    // ИСПОЛЬЗУЕТСЯ UNICODE !

 IGraphBuilder *pGraph = NULL; 
 IMediaControl *pControl = NULL; 
 IMediaEvent *pEvent = NULL; 


 HRESULT hr = CoInitialize(NULL); 



 hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
 IID_IGraphBuilder, (void **)&pGraph); 


 hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl); 
 hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); 

 
 hr = pGraph->RenderFile("video1.mp4", NULL); 
 if (SUCCEEDED(hr)) 
     { 

     hr = pControl->Run(); 
     if (SUCCEEDED(hr)) 
 { 
     long evCode; 
     pEvent->WaitForCompletion(INFINITE, &evCode); 

     }
 }


 pControl->Release(); 
 pEvent->Release(); 
 pGraph->Release(); 
 CoUninitialize();







Добавлено через 2 минуты и 43 секунды
воспроизводит mp3,avi,flv,mkv и другие. Читай справку по Direct Show. Собственно, чем Вас не устраивают готовые продукты?

Добавлено через 4 минуты и 37 секунд
можно заюзать ActiveX. Например тот же Windows Media.

Добавлено через 7 минут и 23 секунды
можно и так 
Код

#include "vfw.h"

#pragma comment(lib,"vfw32.lib")

HWND hwnd;

hwnd = MCIWndCreate(NULL, NULL, MCIWNDF_SHOWNAME | MCIWNDF_SHOWALL|WS_OVERLAPPEDWINDOW | WS_VISIBLE, NULL);

    MCIWndOpen(hwnd, "file.avi", NULL);



Стиль    Описание
MCIWNDF_NOAUTOSIZEWINDOW    Размер окна не изменяется при изменении размера изображения 
MCIWNDF_NOAUTOSIZEMOVIE    При изменении размеров окна не следует выполнять масштабирование изображения для полного заполнения внутренней области окна 
MCIWNDF_NOPLAYBAR    Если задан этот стиль, не отображается полоса просмотра 
MCIWNDF_NOMENU    Не отображается кнопка для доступа к меню 
MCIWNDF_RECORD    Отображается кнопка записи, в меню добавляется строка "New" 
MCIWNDF_NOERRORDLG    При возникновении ошибки на экран не выводится диалогоая панель с описанием этой ошибки. Приложение может получить описание самой последней возникшей ошибки при помощи функции MCIWndGetError 
MCIWNDF_NOTIFYMODE    При изменении режима родительское окно получит извещающее сообщение MCIWNDM_NOTIFYMODE 
MCIWNDF_NOTIFYPOS    При изменении текущей позиции приложение получит извещающее сообщение MCIWNDM_NOTIFYPOS 
MCIWNDF_NOTIFYMEDIA    При замене носителя данных (например, звукового компакт-диска) приложение получит извещающее сообщение MCIWNDM_NOTIFYMEDIA 
MCIWNDF_NOTIFYSIZE    Родительское окно получит извещающее сообщение MCIWNDM_NOTIFYSIZE при изменении размера окна MCI 
MCIWNDF_NOTIFYERROR    При возникновении ошибки родительское окно получит сообщение MCIWNDM_NOTIFYERROR 
MCIWNDF_NOTIFYALL    Окно MCI будет извещать родительское окно в случае возникновения любых событий 
MCIWNDF_SHOWNAME    В заголовке окна будет отображаться имя устройства или путь к файлу 
MCIWNDF_SHOWPOS    В заголовке окна будет отображаться текущая позиция 
MCIWNDF_SHOWMODE    В заголовке окна будет отображаться текущий режим работы 
MCIWNDF_SHOWALL    Будут использованы все возможности окна MCI (то есть все органы управления, отображение информации в заголовке и т. д.)

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

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


 




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


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

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