phonon подойдёт, только под Windows он компилится исключительно Microsoft компилятором, MinGW не сумеет. Год назад тоже делал мультимедиа плеер
. Использовал slave режим mplayer-а.
Вкратце: для воспроизведения музыки/видео с помощью QProcess запускаем mplayer, которому передаём соответствующие параметры через командную строку. Потом по stdin (QProcess::write()) mplayer-у передаём команды управления. из stdout/stderr (QProcess::readyReadStandardOutput()/QProcess::readyReadStandardError()) читаем вывод mplayer-а. Для того, чтобы mplayer выводил видео в нужное нам окно нашего GUI программы, ему в командной строке передаётся параметр "-win winid", где winid - идентификатор окна, то есть нашего QWidget.
Метод себя хорошо зарекомендовал. И сейчас таким образом делаю ещё один плеер.
http://www4.mplayerhq.hu/DOCS/tech/slave.txt - slave команды mplayer-а.
http://www1.mplayerhq.hu/DOCS/HTML/ru/index.html - всё по mplayer.