Делаем свой mp3 проигрыватель на C++

Для создания проигрывателя, будем использовать элемент управления Media Player, который поддерживает следующие форматы:

— Advanced Streaming Format (ASF)
— Video On Demand (VOD)
— Moving Picture Experts Group 1,2,3 (MPEG 1,2,3)
— Real Audio (RA)
— Real Video (RV)
— Audio – Video Interleaved (AVI)
— Quick Time (MOV)
— Musical Instrument Digital Interface (MIDI)
— Indeo 5
— Waveform Audio (WAV)
— Sound File (SND)
— UNIX audio (AU)
— Audio Interchange File Format (AIFF)

Элемент управления Media Player представляет собой ActiveX, основывающийся на компоненте DirectShow уровня DirectX Media. Первое, что необходимо сделать, создать приложение на основе диалога с помощью мастера AppWizard.Следующий шаг, добавление к проекту элемента, делается это через «Project – Add To Project – Components and Controls»

Делаем свой mp3 проигрыватель на C++

Далее в появившемся окне открываем папку «Registered ActiveX Controls», находим ссылку «Windows Media Player.lnk» и жмем Insert

Делаем свой mp3 проигрыватель на C++

Нас спросят, хотим ли мы подключить компонент? Соглашайтесь. 🙂

После, откроется окно, где Вы можете поменять имена у подключаемых файлов. Когда компонент добавлен, в нашем проекте появится два новых файла. В них находится класс CMediaPlayer, который выполняет роль оболочки для элемента Media Player, а в редакторе ресурсов появится элемент Windows Media Player. Поместите его на свой диалог, в свойствах уберите галочку с пункта «Visible».

Теперь необходимо создать указатель с типом CMediaPlayer, в файле заголовке «ИмяВашегоПроектаDlg.h» напишите следующее:

Делаем свой mp3 проигрыватель

перед этим не забудьте добавить файл «mediaplayer.h»

Далее в инициализации диалога OnInitDialog() мы должны получить указатель на элемент Media Player, следующим способом:

m_pMediaPlayer = (CMediaPlayer *)GetDlgItem(IDC_MP);

Поместите на диалог кнопки с заголовками «Load…,Play,Pause,Stop» и Edit Box. В обработчике сообщения к кнопке «Load…» напишите:

CFileDialog m_dlg(TRUE,NULL,NULL,NULL,"MPEG Audio Files(*.mp3)|*.mp3|");
 
if (m_dlg.DoModal() == IDOK)
{
     m_pMediaPlayer->SetFileName(m_dlg.GetPathName());
     m_edit.SetWindowText(m_dlg.GetPathName());
}

Функция SetFileName() устанавливает файл который нужно воспроизвести. В Edit Box помещаем путь к файлу.
Обработчик сообщения кнопки «Play»: m_pMediaPlayer->Play();
Обработчик сообщения кнопки «Pause»: m_pMediaPlayer->Pause();
Обработчик сообщения кнопки «Stop»: m_pMediaPlayer->Stop();
m_pMediaPlayer->SetCurrentPosition(0); Данная функция устанавливает текущую точку воспроизведения.
Вот некоторые из наиболее часто используемых функций:
GetVolume() – получить значение громкости
SetVolume() – установить значение громкости
GetCurrentPosition() – получить текущую позицию воспроизведения
GetDuration() – возвращает длительность воспроизведения в секундах

Все теперь жмите F7 и Ваш собственный проигрыватель готов.

Делаем свой mp3 проигрыватель на C++: 2 комментария

  1. Вася Куролесов

    А это возможно реализовать Visual Studio 10 в CLR?

    1. Lazy_elf Автор записи

      Не советовал бы, такой способ воспроизведения mp3, так как он устарел и работал в MS Visual C++ 6.0. В настоящее время существует множество библиотек, по работе со звуковыми файлами, например: http://www.un4seen.com/ проект BASS использует и всем известный AIMP.

Комментарии запрещены.