我想讓自己適應Qt5,所以我開始了一個非常小的MP3播放器。它編譯在Linux和Windows 7上,都是64位。當QtCreator啓動時,QMediaPlayer無法在Windows上啓動播放功能
在Windows上運行時,只有當我在QtCreator中啓動程序時,選定的mp3文件纔會開始播放。當我開始獨立(共享編譯)的EXE時,程序打開,但開始播放什麼都沒有發生(當在IDE內部調試時,一切似乎都有效,我想是有點像Heisenbug)。
當看文件訪問Processmonitor我看到目錄掃描,但是當MP3應該打開什麼都沒有發生。
也許我錯過了複製一個DLL,但是我沒有提示哪一個缺失,所以它可能是另一個問題。 的Dependency Walker輸出(儘管它並沒有告訴我哪些文件/ funcionts導致的錯誤,也許我錯過了):
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
這是從哪兒我嘗試啓動EXE
-
我的目錄內容
- 文件夾 「平臺」,包括:qminimal.dll,qwindows.dll
- icudt49.dll,icuin49.dll,icuuc.49.dll
- IEShims.dll(工程沒有它,但是Dependency Walker中告訴其丟失)
- libEGL.dll
- libgcc_s_sjlj-1.DLL
- libGLESv2.dll
- 的libstdC++ - 6.dll
- libwinpthread-1.DLL
- Qt5Core.dll,Qt5Gui.dll,Qt5Multimedia.dll ,Qt5Network.dll,Qt5Widgets.dll
- purr.exe
你可以看一下完整的源@https://github.com/VashSan/purr - 源代碼WH的一部分我開始播放:
void PurrWindow::playMedia()
{
// [...]
// QMediaPlayer is a member of PurrWindow:
QUrl media = QUrl::fromLocalFile(selectedFile);
player.setMedia(media);
player.play();
}
我用MSVC2010編譯了一次程序,用Mingw編譯了一次沒有區別。
我試圖谷歌QMediaPlayer的錯誤,但其中大多數都與移動平臺有關。然而,它並沒有給我留下QMediaPlayer的良好印象,也許我應該看看更可靠的播放庫。但是,如果它只是開始播放,我會很高興。
不Qt的節目'selectedFile'顯示爲可訪問(即存在和可讀性)? – 2013-03-01 23:42:19
它在我的電腦上用Qt5處理兩種情況msvc2010 – 2013-03-02 03:28:38
@Vash請仔細檢查答案,併爲那些幫助你的人投票。您也可以點擊答案附近的複選框將其選爲您問題的正式答案。 – karlphillip 2013-03-21 17:25:06