After my original post, I figured out how to use on_blank(), but I’m still
interested to know whether I should have been able to do this with the
on_connect() & on_start() callback functions in input.pulseaudio and
output.icecast.
Also, I’d appreciate any corrections to my usage of on_blank():
def on_receiving()
do stuff
end
source_original = input.pulseaudio(device="4", fallible=true)
source_icecast = on_blank(
on_noise=on_receiving,
{()},
source_original,
start_blank=true,
max_blank=1.,
threshold=-84.
)
output.icecast(%ogg(%flac(compression=5)), fallible=true, host="localhost",
port=8000, password="sourcepwd", mount="mystream", format="audio/ogg",
source_icecast)
Thanks again! —Bob
> On Jan 12, 2019, at 2:37 AM, Bob Stern via Savonet-users
> <[email protected]> wrote:
>
> Per Romain’s advice, I am successfully using pulseaudio to receive music from
> a virtual audio device. The virtual audio device is capturing (like Jack)
> audio from a music player that can alternate between play and pause modes.
>
> QUESTION: Is there a way to call a handler when the audio stream from the
> virtual audio device starts after having been paused?
>
> My attempts to use the on_connect & on_start callback functions in
> input.pulseaudio and output.icecast were unsuccessful. In both cases each of
> the functions was called as soon as liquidsoap launched, but were never
> called again regardless of my switching the music player between pause and
> play modes.
>
> The pause->play transition should have been detectable by liquidsoap because
> icecast server did detect it. When the music player paused, icecast dropped
> the connection to liquidsoap and its mountpoint, and then liquidsoap would
> log the errors:
> Error while sending data: could not write data to host: Broken pipe in
> write()!
> Closing connection...
> Will try to reconnect in 3.00 seconds.
>
> icecast promptly reinstated its connection to liquidsoap and its mountpoint
> when the music player resumed play mode, but the on_connect & on_start
> functions were not called.
>
> Do I need to use on_blank() instead of on_start()? If so, can you please
> provide the code? It’s unclear to me how the source argument and source
> result of on_blank() should should be associated with input.pulseaudio() in
> the following command:
>
> output.icecast(%ogg(%flac(compression=5)),
> input.pulseaudio(device="4", fallible=true, on_start=pulse_start(),
> on_start=pulse_start()),
> fallible=true, host="localhost", port=8000, password="sourcepwd",
> mount="mystream", format="audio/ogg”,
> on_connect=on_connect(), on_start=on_start())
>
> Each callback function was as follows except for the function name and echo’d
> text:
> def pulse_start()
> system ('echo "pulse" >>
> /usr/local/hqp_liquidsoap/log/on_start_on_connect_LOG.log')
> {()}
> end
>
> Thanks very much for your help,
>
> Bob Stern
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users