んな無茶な!
以上。
まあね・・・
それだと飯のたねにも、ブログのネタにもならないので、可能性を検証!検証♪
まっさきに「WPFで実現できるんじゃね?」と思って試してみる。
川西 裕幸のブログ : MediaElement and MediaPlayerを参考にさせてもらいました。
private Queue<string> _movieList = new Queue<string>();
void Window1_Loaded(object sender, RoutedEventArgs e)
{
this.SetMovieList(); // 動画リストを作成する
this.SetMovies();
}
private void SetMovies()
{
MediaPlayer MyPlayer;
System.Windows.Shapes.Rectangle rectangle;
DrawingBrush brush;
Drawing VideoDrawing;
this.UniformGrid1.Columns = 10;
int movieCount = movieList.Count;
for (int i = 1; i <= movieCount; i++)
{
if (_movieList.Count > 0) { break; }
rectangle = new System.Windows.Shapes.Rectangle();
brush = new DrawingBrush();
drawing = new VideoDrawing();
MyPlayer = new MediaPlayer();
drawing.Player = MyPlayer;
brush.Drawing = drawing;
rectangle.Fill = brush;
this.UniformGrid1.Children.Add(rectangle);
MyPlayer.Open(new Uri(_movieList.Dequeue(), UriKind.RelativeOrAbsolute));
drawing.Rect = new Rect(0, 0, this.Width, this.Height);
MyPlayer.Volume = 0;
MyPlayer.SpeedRatio = 0.1;
MyPlayer.Play();
}
}
}
やっていることは簡単。Rectangleオブジェクトのブラシに動画を指定して再生 × たくさん。かなり適当。
さすがに数が数だけに通常再生では20も同時に再生するといっぱいいっぱいで、SpeedRatioプロパティで再生速度を遅める必要があります。にしても一応は同時再生を現段階で60程こなしてくれました。(無論それなりのマシンスペックが要ります。当方マシンWindowsVistaでXeon2.8*2のNVIDIA GeForce7900GS、メモリは1Gでorz)
一応WindowFormsでもCOMコンポーネントのWindowsMediaPlayerを利用して同時再生を試みる。。。こちらもsettings.rateプロパティで再生速度を遅めます。20ほどの同時再生はすんなりとするもののそれを超えるとエラー多発。・・・これ以上関わるのはヤメテオコウ。
WPFであれば、かなりいいスペックのマシンを用意して極力同時再生しているフリをするものができれば、なんとかなりそうな感じ。
100の動画を同時に再生できたとしても、それを同時に見ることはない。
今回一番の苦労は、動画探し。
すでに全国100箇所の動画うんぬん。っていう要求はきまってて、それがおそらくストリーミングで取得可能だそうで。。。
で、当然その環境はまだないわけで、検証するのにWEB上からそれだけの数の動画を、配信先に迷惑掛からないように1サーバからの取得を極力少なくしようと、あちらこちらから動画を探すのはとても大変ですorz
いっそエロ動画!とも思ったけども、自宅で子供もいるし、デモできないしw
そんなわけで、ストリーミング配信してるサイト一覧求むw
ついでに「その仕事絡みたい」ってお方も募集!!!
投稿日時 : 2007年7月11日 0:47