Hi, I'm trying to create a fade-out effect with a video frame, but I get
opacity=0 when the timeline ends.
I test the same code with a image texture and works correctly...

some sample code:

import clutter
import cluttergst



class image(clutter.Texture):

    def __init__(self, *args, **kwargs):
        clutter.Texture.__init__(self)

    def set_file(self):
        self.set_from_file('image.png')


class videoPlayer(cluttergst.VideoTexture):

        def __init__(self, *args, **kwargs):
                cluttergst.VideoTexture.__init__(self)
                self.connect('eos', self.eos)
                self.connect('error', self.error)

        def play(self, f):
                self.set_uri(f)
                self.set_playing(True)

        def stop(self):
                self.set_playing(False)

        def eos(self, data):
                self.play(self.get_uri())

        def error(self, error, data):
                pass


def out_completed(timeline, data):
        start, end = data.get_bounds()

        data.set_bounds(end, start)
        #timeline.start()



def in_completed(timeline, data):
        print 'completado in'
        data.start()

stage = clutter.Stage()
stage.connect('destroy', clutter.main_quit)
stage.set_size(500, 500)


v = videoPlayer()
v.play('file:///home/flaco/weeds.avi')


## for fixed image testing
#v = image()
#v.set_file()


timeline_out = clutter.Timeline(2500)
alpha_out = clutter.Alpha(timeline_out, clutter.EASE_IN_SINE)
fade_out = clutter.BehaviourOpacity(255, 0, alpha_out)
fade_out.apply(v)
timeline_out.start()

timeline_out.connect('completed', out_completed, fade_out)

stage.add(v)
v.set_size(500, 500)
v.show()

stage.show_all()
clutter.main()

Reply via email to