Hi,
I'm kind of stuck. I would really appreciate if I get some
feedback on this.
Thanks,
Amit Sadaphule
From: Amit Sadaphule
Sent: Friday 27 October 2017 05:45:19 PM IST +0530
To: Rygel-list
Cc: Amit Sadaphule
Subject: Playback, volume controls from renderer using
Rygel apisĀ
Hi,
I am using RygelPlaybinRenderer APIs for implementing a dlna
renderer. I am using BubbleUPnP app on android to push the
playback to my renderer. Playback seems to work OK now. The
playback controls and volume controls from BubbleUPnP app are
responsive and work fine. The reverse is what I am trying to get
working i.e. I am trying to find a way to get the playback
controls (play, pause, stop, seek, next, previous, shuffle,
repeat) and volume controls to work from my renderer.
Here is the list of things I tried for different controls:
1. Play, Pause, Stop: I just set the state of the playbin obtained
by calling
https://developer.gnome.org/librygel-renderer-gst/unstable/RygelPlaybinRenderer.html#rygel-playbin-renderer-get-playbin
and that changes the playback state properly and updates the
playback status in BubbleUPnP app too.
2. Seek: With #1 as a guideline, I tried using gst_element_seek on
the playbin obtained using
https://developer.gnome.org/librygel-renderer-gst/unstable/RygelPlaybinRenderer.html#rygel-playbin-renderer-get-playbin,
but that seems to take a lot of time to actually apply the seek
and reflect the status in BubbleUPnP app. Sometimes almost 20
seconds. So, I thought that maybe there is some other way to do
this. So, I tried using
https://developer.gnome.org/librygel-renderer/unstable/RygelMediaPlayer.html#rygel-media-player-seek
by trying to get the player property of RygelMediaRenderer which
is the base class of RygelPlaybinRenderer. But that gave error
"GLib-GObject-WARNING **: g_object_get_valist: property 'player'
of object class 'RygelPlaybinRenderer' is not readable". Could you
please let me know how I can implement seek in the renderer?
3. next, previous: I saw in Rygel's API documentation that there
are APIs rygel_player_controller_next() and
rygel_player_controller_previous() which could be used for
implementing these controls
(https://developer.gnome.org/librygel-renderer/unstable/RygelPlayerController.html).
I tried to use those APIs, but they take the pointer to
RygelPlayerController instance as an argument. I could not find a
way to get that instance. So, I'm not sure whether I am on the
right path. Could you please point me in the right direction?
4. shuffle, repeat: I could not find anything in Rygel's
documentation to implement these controls in my renderer.
5. volume: Changing the volume from BubbleUPnP app changes the
loudness of the audio in playbin. I tried setting the "volume"
property of the Playbin obtained by calling
https://developer.gnome.org/librygel-renderer-gst/unstable/RygelPlaybinRenderer.html#rygel-playbin-renderer-get-playbin
which had effect on the loudness. But that did not sync the volume
in BubbleUPnP to the value set from the renderer. Also, I could
not get mute to work. When I tried setting the mute property of
the playbin, it complained that the mute property did not exist.
So, I'm not sure how I can implement volume/mute handling in my
renderer.
Could you please help me to get #2 to #5 working?
Thanks,
Amit Sadaphule
|