2011年5月27日

[筆記]XNA無法撥放影片的問題

今天有人剛好問到 XNA 無法撥放影片的問題

在這邊順手紀錄一下

相信很多人在一開始練習 XNA 的 VideoPlayer 類別時,會踢到鐵板

明明我從網路上抓下來的影片都可以正常看,為何就是會出現這錯誤訊息呢?

Please make sure that the video is not DRM protected
and is a valid single-pass CBR encoded video file.




通常,會看到這訊息,就表示你的檔案格式錯誤了!!

請不要第一時間就罵微軟,他已經提示你正確但是看沒有的錯誤訊息了 XD

正常的情況下,XNA 只有支援固定的多媒體格式,詳情可以看 這個連結

當你的格式都符合 Video Playback 項目所規定的範圍內

理論上應該是可以正常撥放的

如果你想要確認你手邊的檔案的格式與編碼,你可以使用 這個工具

如果你想要轉換檔案格式,那麼 這個工具 或許是個不錯的選擇

因為多媒體檔案分為視訊與音訊兩大部分

假使,還是會出現這個錯誤訊息,你可以嘗試先讓 IsMuted=true; (只播放視訊)

如果這樣就能夠順利撥放影片,那表示原因很有可能是出在音訊格式上

網路上有很多的音訊,為了節省空間,會使用 VBR 的方式去壓縮

很可惜的是,XNA 只支援 CBR 的格式

這篇文章 有說明 MP3的三種數據(CBR、 VBR、ABR)的差異性

有興趣的可以去看一看這篇文章

基本上,只要你的檔案格式已經是轉換成 XNA 相容的,就能順利撥放了

以上,這樣應該可以幫助大多數的人排除問題了 ^_^

祝各位寫遊戲順利 ~

沒有留言: