掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
AVIファイル再生 (ID:77468)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
失礼しました >MCIとマルチメディアコントロールは同じだと思っていたのですが。 とは、APIとOCXの違いだけで中身は同じだと思ってたという意味だったのですね。 ところで、いろいろとためしてみたんですが、 マルチメディアコントロールって処理が変わってますね。 PictureBoxのPaintメッセージが呼ばれないみたいで、 AutoRedrawプロパティをTrueにすると、データが残らないようです。 で、いろいろ実験してて、一番まともに動いたのは (それでもかなり不満がのこる) *条件 Form1にMMControl1とPicture1とPicture2を設置。 Picture1とPicture2のサイズは同じにする。 Form1、Picture1、Picture2のScaleModeを3(ピクセル)にする *コード Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Private Sub Form_Load() MMControl1.Notify = False MMControl1.Wait = True MMControl1.Shareable = False MMControl1.DeviceType = "AVIVideo" MMControl1.filename = "(ファイル名)" MMControl1.Command = "Open" MMControl1.hWndDisplay = Picture1.hWnd MMControl1.UpdateInterval = 0 Picture1.AutoRedraw = False Picture2.AutoRedraw = True Picture2.Visible = False End Sub Private Sub MMControl1_PauseClick(Cancel As Integer) MMControl1.UpdateInterval = 0 End Sub Private Sub MMControl1_PlayClick(Cancel As Integer) MMControl1.UpdateInterval = 300 '適宜変更 End Sub Private Sub MMControl1_StopClick(Cancel As Integer) MMControl1.UpdateInterval = 0 End Sub Private Sub MMControl1_StatusUpdate() Call BitBlt(Picture2.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hDC, 0, 0, vbSrcCopy) Picture1.Refresh End Sub Private Sub Picture1_Paint() Call BitBlt(Picture1.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture2.hDC, 0, 0, vbSrcCopy) End Sub とすれば、一応停止中も再描画されると思います。 ・・・が、描画中に画面外にあったりするとちゃんと描画されなかったり (これはそもそもPicture1に全部描画されていない) すこしちらつきもあるような気がします。 参考程度にためしてみてください。 MediaPlayerControlですが、 私もMSDNみてみましたけど、わかりにくいですね。 7.x以降のライセンスとかはけっこうのってましたけど、 6.4以前についてはそこいら辺の詳しい説明を発見できませんでした。 ただ、MediaPlayerControlを使っている某フリーソフトでのReadMeでは 以下のように説明がされていました 「WindowsMediaPlayer5.0以降 Windows95/98はWindowsMediaPlayer(今だと7)をインストールする事で利用可能です。 Windows98SE/Me/2000/XPはそのまま利用可能です。」 win95や98はOSのインストールオプションで MediaPlayerをインストールしないこともできたと思うので、 MediaPlayerのインストールは必須だと思います。 バージョン的に見て(うちの環境ではmediaplayercontrolは6.4.55だった)、 7.x以降の"wmplayer.exe"ではなく、 "mplayer2.exe"になると思います。 起動時にこれの存在をチェックするのもいいかもしれません。 MediaPlayerについてもうすこしわかればまた発言させていただきます
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.