How can you resize video?

how to resize a video using mciSendString

  • Below is the code I use to play a video. Video is played on a panel but when Start a video it only shows a part of the video how can I fit the video inside the panel? Also how can I get the default size(height and width) of the video so that I can maintain aspect ratio. Private Sub movieWindow_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles movieWindow.DragDrop Dim file_names As String() = DirectCast(e.Data.GetData(DataFormats.FileDrop), String()) Dim result As String For Each file_name As String In file_names result = file_name.Substring(file_name.LastIndexOf("\") + 1) frmPlayList.playlist.Items.Add(result) frmPlayList.playlist2.Items.Add(file_name) Next file_name frmPlayList.playlist2.SelectedIndex = frmPlayList.playlist2.Items.Count - 1 filename = frmPlayList.playlist2.SelectedIndex retVal = mciSendString("play movie", 0, 0, 0) End Sub

  • Answer:

    Try this bit of code to automatically resize the movie on the panel on which you are hosting the video. It will also maintain the correct aspect ratio. (Just substitute the name of your panel for "movieWindow") maxSize is the maximum size you want the video to be. It will be forced to fit within this size. Call the sub right before you issue the "play movie" command. (edit 3/20/2012 - fixed typo on variable name). SizeVideoWindow(movieWindow.size) dim retval as integer = mcisendstring("play movie", 0, 0, 0) Private Sub SizeVideoWindow(maxSize as size) Dim ActualMovieSize As Size = getDefaultSize() Dim AspectRatio As Single = ActualMovieSize.Width / ActualMovieSize.Height Dim iLeft As Integer = 0 Dim iTop As Integer = 0 Dim newWidth As Integer = maxSize.width Dim newHeight As Integer = newWidth \ AspectRatio If newHeight > maxSize.height Then newHeight = maxSize.height newWidth = newHeight * AspectRatio iLeft = (maxSize.width - newWidth) \ 2 Else iTop = (maxSize.height - newHeight) \ 2 End If mciSendString("put movie window at " & iLeft & " " & iTop & " " & newWidth & " " & newHeight, 0, 0, 0) End Sub Public Function getDefaultSize() As Size 'Returns the default width, height the movie Dim c_Data As String = Space(128) mciSendString("where movie source", c_Data, 128, 0) Dim parts() As String = Split(c_Data, " ") Return New Size(CInt(parts(2)), CInt(parts(3))) End Function

Failed_Noob at Stack Overflow Visit the source

Was this solution helpful to you?

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.