2011-02-15 62 views
3

我已經將MediaElement放置在我們正在構建的應用程序的新創建窗口中,將它的源設置爲wmv(也用gif嘗試過),但它不顯示在屏幕,當我運行它。MediaElement not display

然後我創建了一個新的獨立的項目,這一切按預期工作。

這是工作的代碼:

<MediaElement Source="pre-loader.wmv" LoadedBehavior="Manual" Name="Video" /> 

,這是行不通的代碼:

<MediaElement Source="pre-loader.wmv" LoadedBehavior="Manual" Name="Video" /> 

我知道,它一樣...我不明白呢?

我嘗試了幾種不同的方法,但我得到了相同的結果。測試項目的主要應用不是。

我在兩個項目中都使用相同的wmv文件,我也確保在這兩種情況下複製到輸出目錄。如果更新,則設置爲複製。

任何幫助將...好,樂於助人

更新:我已經嘗試使用窺探和ActualWidth的尋找的MediaElement,ActualHeigt都爲0,但高度屬性是140,寬度屬性爲NAN。 另外,source = Default。

當我在Blend中查看屏幕時,我也遇到了「加載預覽時出錯」,但它不讓我知道錯誤是什麼。

+0

你有什麼異常嗎?您的應用程序是否可能缺少訪問該文件的一些權限? – 2011-02-15 18:48:27

回答

9

首先看的是你的項目資源。 「Source」屬性表示您從相對URI獲取視頻,該視頻僅在視頻位於項目文件中時才起作用。

MediaElement的默認有一個沉默的失敗,這意味着除非您通過編程來明確它不會拋出異常。這通常是在Mediaelement的MediaFailed(VB)/「OnMediaFailed」(C#)屬性後面的某些操作中設置的。我通常會在此事件中放入一個消息框,告訴用戶視頻無法加載。

在,您有在問題的項目,你需要做的第一件事是進入項目屬性,進入「資源」選項卡,並導入視頻作爲一種資源。然後,在解決方案資源管理器中,單擊視頻(在Resources文件夾中)並(如您所做的那樣)將其屬性設置爲BuildAction = None,並且CopyToOutput = Copy如果更新。不要將其設置爲「Embedded Resource」,否則MediaElement將無法播放它。它必須設置爲「無」。

然後,更改爲「資源/預loader.wmv-」

其他(相當明顯)piossiblity是,如果你在你的代碼中調用該函數mediaelement.play後面檢查的MediaElement源。如果你並不需要明確地控制播放/暫停/停止功能,我將設置的LoadedBehavior「玩」。

希望有幫助!評論你是否還有其他問題。

0

檢查「平臺tagret」在項目屬性這兩個項目的屬性。某些編解碼器只能在x86或x64模式下工作。