當用qml的MediaPlayer在XP系統下播放視頻時,會報錯:QtMultimedia : defaultServiceProvider::requestService(): no service found for - “org.qt-project.qt.mediaplayer”. 這時需要修改源碼重新編譯Qt的QtMultimedia模塊,使用重新生成的dsengine.dll庫。
步驟如下:
1. 到官網去下載qtmultimedia這個模塊的源碼(注意:不用把整個sdk都下載,因爲qt提供了下載單個模塊下qtmultimedia-opensource-src-5.2.0.zip),大概6M左右,進行解壓。
2. 打開qtmultimedia-opensource-src-5.2.0\src\plugins\plugins.pro
刪除 config_wmf: SUBDIRS += wmf
3. 打開qtmultimedia-opensource-src-5.2.0\src\plugins\directshow\directshow.pro
將!config_wmf: include(player/player.pri)
改爲:
include(player/player.pri)
4. 打開directshow.pro,重新編譯,在配置的輸出目錄的\plugins\mediaservice目錄下生成了好多音視頻相關庫,如下截圖:
找到dsengined.dll庫,將自己工程中原來的dsengined.dll庫替換掉。
注意:如果沒有配置編譯輸出路徑的話,可能會輸出到你的C盤目錄下(本人用的QtCreator編譯的)。
※不想自己手動編的朋友,可以直接用本人編的庫,下載即可用※
獲取本人編的整個模塊輸出庫,請點擊:
http://download.csdn.net/detail/shado_walker/9741942
可以根據自己需要進行使用☺