1) Некоторые файлы могут не проигрываться. Кодеоков на машине нет. Нужно отловить этот момент.
Делал вот так:
connect(mediaPlayer, SIGNAL(error(QMediaPlayer::Error)), this, SLOT(mediaPlayerError(QMediaPlayer::Error)));
Не срабатывает, mediaPlayer сигнал error() не выдаёт вообще, хотя в поток ошибок пишет "GStreamer; Unable to play - "file:///home/user/123.mp4" .
Подскажите, как узнать, смог плеер файл открыть или нет. Очень нужно программно отловить ошибку. Какие есть ещё способы? И по какой причине мой код не срабатывает?
2) Не могу получить размеры видео изображения. Опять же, в соответствии с мануалом ловлю сигнал от mediaPlayer
connect(mediaPlayer, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)),
this, SLOT(mediaPlayerStatusChanged(QMediaPlayer::MediaStatus)));
void MainWindow::sl(QMediaContent media)
{
qDebug() << "Changed metadata ";
QMediaResourceList rl = media.resources();
if (!rl.isEmpty())
qDebug() << "w=" << rl.first().resolution().width();
}
Выводит "w=-1"
Пробовал под Windows7 Ultimate Edition и XUbuntu 12.04. Результат одинаков. Если кто-то работал с QMediaPlayer, подскажите.