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
Related Q & A:
- How to embed a video using URL?Best solution by Stack Overflow
- How to submit a form using httpurlconnection?Best solution by stackoverflow.com
- How to make a font using a png image?Best solution by Super User
- How can I record a video using my webcam?Best solution by Answerbag.com
- How to make a video using audio and pictures?Best solution by Answerbag.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
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.