Skip to content

Commit 7180476

Browse files
committed
add arguments
add media from web
1 parent 2279309 commit 7180476

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

src/VLC/VLCLibrary.class.st

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,28 @@ VLCLibrary >> initializeVLC [
123123
^ self ffiCall: 'void * libvlc_new();'
124124
]
125125

126+
{ #category : #initialization }
127+
VLCLibrary >> initializeVLCWithArguments: aCollectionOfString [
128+
"colArguments := OrderedCollection new.
129+
colArguments add: '--novideo'.
130+
vlc := VLCLibrary uniqueInstance initializeVLCWithArguments: colArguments.
131+
media := vlc mediaFileFromStringLocation: 'https://s6.onlinevideoconverter.com/download?file=d3a0d3e4a0c2f5'.
132+
player := vlc createPlayerForMedia: media.
133+
vlc playMediaPlayer: player.
134+
vlc pauseMediaPlayer: player.
135+
vlc isMediaPlayerPlaying: player"
136+
137+
| externalArray |
138+
externalArray := (FFIExternalArray externalNewType: 'void*' size: aCollectionOfString size) autoRelease.
139+
aCollectionOfString withIndexDo: [ :string :index | externalArray at: index put: (ExternalAddress fromString: string) autoRelease ].
140+
libVLCInstance := self initializeVLCWithArguments: externalArray getHandle andNumberOfArgs: aCollectionOfString size.
141+
]
142+
143+
{ #category : #initialization }
144+
VLCLibrary >> initializeVLCWithArguments: aCollectionOfString andNumberOfArgs: sizeOfCollectionOfString [
145+
^ self ffiCall: 'void * libvlc_new(int sizeOfCollectionOfString, void * aCollectionOfString);'
146+
]
147+
126148
{ #category : #'media list' }
127149
VLCLibrary >> insertInMediaList: aMediaList media: aMedia atIndex: anIndex [
128150
^ self ffiCall: 'int libvlc_media_list_insert_media (void * aMediaList, void * aMedia, int anIndex)'
@@ -150,6 +172,18 @@ VLCLibrary >> libraryName [
150172
^ 'libvlc.so'
151173
]
152174

175+
{ #category : #media }
176+
VLCLibrary >> mediaFileFromFileDescriptor: fileDescriptor [
177+
"ex self mediaFileFromStringPath: '/home/badetitou/Musique/Coda.mp3'"
178+
^ self ffiCall: 'void* libvlc_media_new_fd(void* libVLCInstance, int fileDescriptor);'
179+
]
180+
181+
{ #category : #media }
182+
VLCLibrary >> mediaFileFromStringLocation: aLocation [
183+
"ex self mediaFileFromStringPath: '/home/badetitou/Musique/Coda.mp3'"
184+
^ self ffiCall: 'void* libvlc_media_new_location (void * libVLCInstance, String aLocation);'
185+
]
186+
153187
{ #category : #media }
154188
VLCLibrary >> mediaFileFromStringPath: aStringPath [
155189
"ex self mediaFileFromStringPath: '/home/badetitou/Musique/Coda.mp3'"
@@ -202,7 +236,7 @@ VLCLibrary >> playMediaPlayer: aMediaPlayer [
202236
player := vlc createPlayerForMedia: media.
203237
vlc playMediaPlayer: player
204238
"
205-
^ self ffiCall: 'void * libvlc_media_player_play(void* aMediaPlayer);'
239+
^ self ffiCall: 'int libvlc_media_player_play(void* aMediaPlayer);'
206240
]
207241

208242
{ #category : #'media player' }
@@ -239,6 +273,11 @@ VLCLibrary >> setMediaList: aMediaList forListPlayer: aListPlayer [
239273
^ self ffiCall: 'void* libvlc_media_list_player_set_media_list (void* aListPlayer, void* aMediaList)'
240274
]
241275

276+
{ #category : #'media player' }
277+
VLCLibrary >> setXWindows: indentifier forMediaPlayer: aMediaPlayer [
278+
^ self ffiCall: 'void libvlc_media_player_set_xwindow(void* aMediaPlayer, int indentifier);'
279+
]
280+
242281
{ #category : #'accessing platform' }
243282
VLCLibrary >> unix32ModuleName [
244283
#('/usr/lib/i386-linux-gnu' '/usr/lib32' '/usr/lib') , ((OSEnvironment current at: 'LD_LIBRARY_PATH' ifAbsent: [ '' ]) substrings: ':')

0 commit comments

Comments
 (0)