人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C#で動画(*.wmv)を再生するだけのアプリケーションを作っています。
COMコンポーネントの「Windows Media Player」を使用して動画を再生させることはできたのですが、フォームのOpacityを操作して半透明にしようとすると動画が真っ黒になって表示されなくなってしまいます。
ウィンドウをドラッグするとチラチラと表示されてバグっぽい挙動なのですが、回避する方法は無いものでしょうか?
また、半透明ウィンドウ(またはカラーキーで透過)で動画を再生しているアプリケーションのサンプルが紹介されているサイトがありましたら教えてください。

OSはWindowsXP SP2、VisualC#は「2005 ExpressEdition」と「.NET 2003」の両方で試しています。

よろしくお願いします。



●質問者: nori_0000
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.NET C# Windows Media Player WindowsXP wmv
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kaorun
●60ポイント ベストアンサー

すいません、確認はしていないのですが、オーバーレイなどの原理的に考えると、Opacityの指定だけで動画を透過再生されるのは難しいのではないかと思います。ひょっとしたらManaged DirectXを使用する動画再生で対処方法があるかも知れませんが...。

一方で、違う畑になってしまいますが、WPFを使ってしまえば同様の処理は異様に簡単です。MediaElementを使用して半透明なウインドウに張るだけですし、VisualBrushにしてしまえば、透過だろうがグラデーションだろうが3Dエフェクトだろうがかけ放題です。コード(XAMLマークアップ)的にも非常にシンプルになります。

<Window x:Class="TransparentVideoPlayer.Window1"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 Title="TransparentVideoPlayer" Height="300" Width="400" 
 Background="Transparent" Opacity="0.5" WindowStyle="None" AllowsTransparency="True">
 <Grid >
 <MediaElement Source="test.wmv" Width="320" Height="200" />
 </Grid>
</Window>

参考:

theWPFblog - 3D Video Player Thing 
http://thewpfblog.com/?p=10
◎質問者からの返答

ご回答ありがとうございます

やはり簡単にはいかなそうですか。

残念ですが半透明ウィンドウでの動画再生はあきらめます。

それにしてもWPFは面白そうですね!

初めて知りましたがとても興味を持ちました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ