1.例子:
如果只是播放視頻的話,可以參考官方的vedioWidget例子;
如果需要實現圖片與視頻輪詢播放,由於圖片播放,並不會發出state完畢的狀態信號,故可以使用QTimer輪詢的手法,進行自動切換
2.播放格式:
QMediaPlayer是對底層播放框架的封裝,具體格式依賴播放框架,Windows上就是DirectShow,安裝LAV Filters之類的DirectShow解碼框架就可以支持更多的格式。Linux下是GStreamer,類似。
參考自
foruok :https://bbs.csdn.net/topics/391062417
3.錯誤代碼編寫,參考官方例子,關注QMedaiPlayer的error:
//參考Qt官方例子 videowidget typedef void (QMediaPlayer::*ErrorSignal)(QMediaPlayer::Error);
connect(&m_mediaPlayer, static_cast<ErrorSignal>(&QMediaPlayer::error),
this, &UiAdvMediaWidget::slotHandleError);
void UiAdvMediaWidget::slotHandleError()
{
const QString errorString = m_mediaPlayer.errorString();
QString message = "Error: ";
if (errorString.isEmpty())
message += " #" + QString::number(int(m_mediaPlayer.error()));
else
message += errorString;
m_tipLabelPtr->setText(message);
}
4.發佈問題:
如果發佈後,發現報錯:
Error: The QMediaPlayer object does not have a valid service ;
則需要找到 plugins/mediaservice,將整個mediaservice文件夾複製到與exe同一目錄下即可。