2015-04-15 4 views
0

Я подключить QMediaPlayer::error() сигнал и пытается воспроизвести видеофайл:QMediaPlayer :: Ошибка() никогда не излучаются, даже если видео не может играть

QMediaPlayer *player = new QMediaPlayer; 
QMediaPlaylist *playlist = new QMediaPlaylist(player); 
playlist->addMedia(QUrl::fromLocalFile("/path/to/file.mp4")); 

QVideoWidget *videoWidget = new QVideoWidget; 
player->setVideoOutput(videoWidget); 

videoWidget->resize(640, 340); 
videoWidget->show(); 
ErrorPrinter *errorPrinter = new ErrorPrinter(player); 
QObject::connect(player, SIGNAL(error(QMediaPlayer::Error)), errorPrinter, SLOT(printError(QMediaPlayer::Error))); 
player->play(); 

На видео виджет показывает, но ничего не играет, так что он, должно быть, не сработал. Однако сигнал QMediaPlayer::error() никогда не излучается! Выход приложения пуст, нет утверждений, функция play() - void (нет значения возврата для указания успеха или неудачи) и playlist->addMedia always returns true.

Как я могу узнать, что пошло не так?

ответ

0

Строительство только QObject. Он не связывает плейлист с игроком - игрок не знает о плейлисте.

Итак, вы никогда не устанавливали плейлист на проигрывателе. Вам также может потребоваться установить индекс списка воспроизведения - 1 или, возможно, ноль (? - документы не ясны).

playlist->setCurrentIndex(1); 
player->setPlayList(playlist); 
player->play(); 

 Смежные вопросы

  • Нет связанных вопросов^_^