Platforms to show: All Mac Windows Linux Cross-Platform
Required plugins for this example: MBS WinFrameworks Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /WinFrameworks/MFPMediaPlayer
This example is the version from Thu, 25th Dec 2019.
Project "MFPMediaPlayer.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
EventHandler Sub NewDocument()
dim f as FolderItem
#if DebugBuild then
f = SpecialFolder.Desktop.Child("test.mov")
#endif
if f = nil or not f.Exists then
f = GetOpenFolderitem("")
end if
if f <> nil then
OpenDocument f
end if
End EventHandler
EventHandler Sub Open()
End EventHandler
EventHandler Sub OpenDocument(item As FolderItem)
dim w as new PlayerWindow
dim m as new MyMFPMediaPlayerMBS(item.URLPath, true, w.output)
w.MediaPlayer = m
Exception re as MFPMediaPlayerExceptionMBS
if w <> nil then
w.close
end if
End EventHandler
EventHandler Function UnhandledException(error As RuntimeException) As Boolean
MsgBox Introspection.GetType(error).name+EndOfLine+EndOfLine+Hex(error.ErrorNumber)+" "+error.Message
return true
End EventHandler
End Class
Class PlayerWindow Inherits Window
Control Output Inherits Canvas
ControlInstance Output Inherits Canvas
End Control
Control Timer1 Inherits Timer
ControlInstance Timer1 Inherits Timer
EventHandler Sub Action()
if MediaPlayer <> nil then
if MediaPlayer.State >= MediaPlayer.StateStopped then
info.Text = str(MediaPlayer.Position, "0.00")+" of "+str(MediaPlayer.Duration, "0.00")
return
end if
end if
info.Text = ""
Exception r as MFPMediaPlayerExceptionMBS
// ignore if player not ready yet
End EventHandler
End Control
Control Info Inherits Label
ControlInstance Info Inherits Label
End Control
Control PauseButton Inherits BevelButton
ControlInstance PauseButton Inherits BevelButton
EventHandler Sub Action()
MediaPlayer.Pause
End EventHandler
End Control
Control PlayButton Inherits BevelButton
ControlInstance PlayButton Inherits BevelButton
EventHandler Sub Action()
MediaPlayer.Play
End EventHandler
End Control
EventHandler Sub Resized()
#Pragma BreakOnExceptions false
if mediaplayer <> nil then
MediaPlayer.UpdateVideo
end if
Exception r as MFPMediaPlayerExceptionMBS
// ignore?
End EventHandler
EventHandler Sub Resizing()
#Pragma BreakOnExceptions false
if mediaplayer <> nil then
MediaPlayer.UpdateVideo
end if
Exception r as MFPMediaPlayerExceptionMBS
// ignore?
End EventHandler
Property MediaPlayer As MFPMediaPlayerMBS
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
Class MyMFPMediaPlayerMBS Inherits MFPMediaPlayerMBS
EventHandler Sub Ended()
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub Error()
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub FrameStepped()
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub MediaItemCleared()
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub MediaItemCreated(MediaItem as MFPMediaItemMBS, Tag as variant)
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub MediaItemSet()
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub Paused()
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub PositionSet()
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub RateSet(rate as Single)
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub Started()
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub Stopped()
System.DebugLog CurrentMethodName
End EventHandler
End Class
End Project
The items on this page are in the following plugins: MBS WinFrameworks Plugin.