川西 裕幸のブログ : 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 のゲストにするのもいいかも…