This class implements a media player with simple control and can be created.
To create a new MediaView:
Dim hMediaView As MediaView hMediaView = New MediaView ( Parent As Container ) [ As "EventName" ]
Alternatively, you can drag the MediaView control from the 'Media' folder in the IDE onto the form if you have previously added the gb.media.form component in the project properties.
Figure 23.15.1: MediaView as a video player
The MediaView class has these properties
Property | Data type | Description |
---|---|---|
Border | Boolean | The control gets a border if the value is set to True or returns the value. |
Duration | Float | Returns the playing time of the medium in seconds. Note: This value remains zero until the file has been played. Simply setting the URL property does not display the media duration! |
Muted | Boolean | The sound is muted if the value is set to True or returns the value. |
NextURL | String | Returns or sets the path or the next URL of the media file to be played. |
Position | Float | Returns or sets the current position within the medium in seconds. |
ShowControl | Boolean | The control is displayed if the value is set to True or returns the value. |
Speed | Float | Returns the playback speed of the medium or sets the value. Since version 3.12. |
State | Integer | Returns the status of the media player. Since version 3.19. |
URL | String | Returns or sets the path or URL of the media file to be played. |
Volume | Float | Sets the volume of the audio track to a value between 0 and 1 or returns the volume value. |
Table 23.15.1.1 : Properties of the MediaView class
The MediaView class has these methods:
Method | Description |
---|---|
Pause() | The playback of the media file is paused. |
Play() | Playback of the media file is started. |
Stop() | The playback of the media file is stopped/finished. |
Table 23.15.2.1 : Methods of the MediaView class
Example:
MediaView1.URL = Media.URL("/tmp/media.mpg") Print MediaView1.Duration MediaView1.Play() MediaView1.Pause() Print MediaView1.Duration
Output in the IDE console (unit seconds):
0 342
The MediaView class has this relevant event:
Event | Description |
---|---|
AboutToFinish ( ) | This event is triggered when the current media playback is about to end. It is triggered approximately two seconds before the end of playback of the media file. |
Table 23.15.2.1.1 : Events of the MediaView class
The project is configured so that you can play video files in different video formats.
The source code is short and is given here in full and then commented on:
[1] ' Gambas class file [2] [3] Private $sFileName As String [4] [5] Public Sub Form_Open() [6] MediaView1.Volume = 0.7 [7] FMain.Width = 629 [8] End [9] [10] Public Sub btnOpenVideo_Click() [11] [12] Dim sFilter As String [13] Dim aFilter As String[] [14] [15] Dialog.Title = ("Select a video file") [16] sFilter = "*.avi;*.mp4;*.mpeg;*.mpg;*.webm;*.ogv;*.mkv" [17] Dialog.Filter = [sFilter, ("Video files"), "*", ("All files")] [18] Dialog.FilterIndex = 0 [19] [20] If Dialog.OpenFile(False) Then Return [21] [22] $sFileName = File.Name(Dialog.Path) [23] FMain.Caption = ("Video: ") & $sFileName [24] [25] aFilter = ["avi", "mp4", "mpeg", "mpg", "webm", "ogv", "mkv"] [26] If aFilter.Exist(File.Ext(Dialog.Path)) Then [27] MediaView1.URL = Media.URL(Dialog.Path) [28] Endif [29] [30] End [31] [32] Public Sub MediaView1_AboutToFinish() [33] Wait 2 [34] FMain.Caption = ("The video « ") & $sFileName & (" » has been played") [35] End [36] [37] Public Sub Form_Close() [38] [39] Dim hWindow As Window [40] [41] '-- Close all open windows [42] For Each hWindow In Windows [43] hWindow.Close() [44] Next [45] [46] End
Comments
In the download area you will find a project archive with the above example.
Chapter & Projects