2011-05-06 47 views
1

我有一些代碼編譯使用Visual Studio 2010(C + +),用Qt的GUI和聲音來顯示一些視頻。聲音問題在Windows 7與代碼編譯在XP

我編譯並運行在Windows XP機器中的代碼,一切工作正常。視頻和控件顯示正確,在其他Windows XP計算機中也是如此。但在我嘗試使用Windows 7機器的那一刻,視頻並未顯示出來。 Phonon控件被加載,我可以調整Phonon VideoWidget的大小,但沒有顯示。我使用SetFile方法來指示文件位置,並且我也嘗試過(當然,沒有運氣)與MediaObject中的setCurrentSource(它適用於Windows XP)。

我已經嘗試過不同位置的文件(絕對/相對),但似乎沒有任何工作。另外,在XP中未找到視頻時,會顯示警告消息,而在Windows 7中則不會顯示錯誤消息,但也不會顯示視頻。如果我嘗試與其他玩家一起打開視頻,他們會正常工作(我也嘗試過使用不同格式的視頻)。

有什麼想法可能是錯的? Phonon和Windows 7有什麼缺少的東西?謝謝!

+3

只是猜測:你可以使用類似Windows媒體播放器播放視頻嗎? Windows 7編解碼器比XP編解碼器做了更多驗證,因此文件中可能有問題。 – 2011-05-07 05:49:28

+0

是的,我已經嘗試使用Windows媒體播放器播放視頻並使用不同格式的文件,並且一切都在該程序之外運行。奇怪的是,它甚至沒有告訴我何時無法找到視頻(這發生在XP中)。我將編輯問題以添加您的評論,我應該在之前添加它。 – sergi 2011-05-07 07:18:16

+1

我假設Windows 7機器不是安裝了Qt的開發機器?你記得複製聲子後端目錄嗎?如果我沒有弄錯它也依賴於Qt的OpenGL DLL。你複製了嗎? – Bart 2011-05-07 07:36:42

回答

3

將應用程序部署到另一臺計算機時,請確保您不要忘記複製Phonon後端。不僅包含在其中的DLL(ds後端),還包括目錄本身。

也就是說

-Application Directory 
¦-myexe.exe 
¦-phonon_backend 
    ¦-phonon_ds94.dll 

而且在Windows(和Mac我認爲)的聲子後端利用了QtOpenGL模塊。所以不要忘記複製這個。它可以進入應用程序目錄。

在任何情況下,您都可以通過添加一小段顯示(可能寫入文件)which mimetypes are available的代碼來幫助自己。如果它不吐出任何東西,後端就會出現問題。 (那麼,你的應用程序...)

這是我用我的聲音在我的應用程序中播放視頻時必須做的。由於我前一段時間很快就將其添加到我的應用程序中,因此我不能100%確定這是實現此目的的唯一(或甚至是正確的)方式,因此具有不同洞察力的任何人都可以隨時對此進行評論。