川西 裕幸のブログ : Media Foundation の更新 @ Windows 7
Windows 7 の Media Foundation は H.264 もサポートらしい。
WMV 以外はまともに再生できなかったのに、FLV は流石にサポートしないか。
せっかくなので IronPython で動画再生方法、書くまでもなく WPF。
もちろん System.Windows.Controls.MediaElement を使います。
こいつが Media Foundation のフロントエンドです。
# -*- coding: UTF-8 -*- import clr clr.AddReferenceByPartialName("PresentationCore") clr.AddReferenceByPartialName("PresentationFramework") clr.AddReferenceByPartialName("WindowsBase") from System import * from System.Windows import * from System.Windows.Controls import * class MoviePlayer(Window): def __init__(self): self.Title = "動画プレイヤー" # System.Windows.Controls.MediaElement self.player = MediaElement() self.Content = self.player self.Width = 320 self.Height = 240 # D&D self.AllowDrop = True self.Drop += self.on_drop def on_drop(self, sender, e): # System.Array なので str に変換 filenames = e.Data.GetData(DataFormats.FileDrop) filename = str(filenames[0]) if filename != None and filename.Length != 0: self.player.Source = Uri(filename) if __name__ == "__main__": a = Application() a.Run(MoviePlayer())
自分で作って驚いたけど VirtualBox のゲストである XP で動いてしまった。
Cinema は動かなかったのに、というより DirectX 使いまくりなのに普通に動くとは。
DirectShow は関係無く現状では WMV しかまともに再生できませんけどね。
Windows 7 でやってみてアリなら作り込んでみるのも面白いかも。
7 を買うかどうかは…これなら VirtualBox のゲストにするのもいいかも…