@@ -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' }
127149VLCLibrary >> 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 }
154188VLCLibrary >> 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' }
243282VLCLibrary >> unix32ModuleName [
244283 #('/usr/lib/i386-linux-gnu' '/usr/lib32' '/usr/lib') , ((OSEnvironment current at: ' LD_LIBRARY_PATH' ifAbsent: [ ' ' ]) substrings: ' :' )
0 commit comments