Hi Benoît: Posting again without 'html' boxed clicked. Whoops.

I have been playing with the Gambas MediaPlayer and the related Gambas
wrappers of GStreamer libs recently hoping that I can find enough
functionality in the gb.media libraries to be able to construct my app and
not have to ever go back to doing my GUIs in C.

I have used the Playbin plugin in the past w/ PyGST and also C.  When the
video is about done playing an event can fire that lets the hosting
application set the URL property to a new video should the app want to play
another video at the end of the current video.

I am seeing two weird *bugs* w/ the Gambas MediaPlayer.  I looked at the C
code here
https://sourceforge.net/p/gambas/code/HEAD/tree/gambas/trunk/gb.media/src/c_mediaplayer.c
and see that for the most part the MediaPlayer is a very slick wrapper of
the Playbin element.  So hopefully the issue will be easy to find / correct
for someone with some deeper background of the gb.media library.

The issues:

#1) Even though the "AboutToFinish" event fires successfully, setting the
URL makes no effect here, and the "END" event will then fire at the end of
the current video. The 'Video_Changed' event does not fire.  If after
starting starting a video, I manually change the .URL property (from a
button click event) then at the end of the first video I will get a
'Video_Changed' event and the second video will start.  

#2) When I am able to get the MediaPlayer to set the .URL property to the
second value, and the video does start to play at the end of the first
video, the audio plays but the video does not update until I invoke the
.Pause() method and even then it's just displays that frame and when I
invoke .Play() after  .Pause() the video does not continue but the audio
does.  Codec issue?

I am using Ubuntu 14.04, Gambas 3.9.0.  GStreamer 1.2.4 (kinda old, but
playbin works as I'd expect under Python and C).

Here is some of the code:

' Gambas class file
Public objMedia1 As New MediaPlayer As "MP1"
Public Sub Button1_Click()
  objMedia1.URL = "file:///home/chris/Desktop/big-buck-bunny_trailer.webm"
  objMedia1.SetWindow(DrawingArea1, DrawingArea1.X, DrawingArea1.Y,
DrawingArea1.Width, DrawingArea1.Height)
  objMedia1.Play()
End

Public Sub btnNewURL_Click()
  ' invoking this 10-15 seconds into the video clip seems to have the
desired effect.
  objMedia1.URL = "file:///home/chris/Desktop/sintel_trailer-480p.webm"
End
 
Public Sub MP1_End()
  Print "Video Ended."
End

Public Sub MP1_AboutToFinish()
 ' this doesn't have any effect.
  objMedia1.URL = "file:///home/chris/Desktop/sintel_trailer-480p.webm"
End

Public Sub MP1_VideoChanged()
' This only fires when @ the end of the first video when I've manually set
the URL property from a button click.  If I set
' the URL property from the _AboutToFinish() event Sub then nothing happens
(other then _END firing when video #1 has completed). 
 Print "Video Changed."
End


Hopefully that's semi-clear. I hope this is something that can be easily
reproduced and fixed!  I really enjoy how productive I can be w/ Gambas and
now that I've gotten used to doing GUIs and semi-complex application
business logic with Gambas I really don't ever want to have to do those in C
again.  :)

Thanks!

Piper





--
View this message in context: 
http://gambas.8142.n7.nabble.com/MediaPlayer-bug-with-AboutToFinish-and-URL-tp57513p57516.html
Sent from the gambas-user mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to