NAME
POE::Component::Client::Icecast - non-blocking client to Icecast server for getting tags
SYNOPSIS
use strict;
use POE qw(Component::Client::Icecast);
use Data::Dumper;
POE::Component::Client::Icecast->new(
Stream => 'http://station20.ru:8000/station-128',
GetTags => sub {
warn Dumper $_[ARG0];
},
);
# or
POE::Component::Client::Icecast->new(
Host => 'station20.ru',
Path => '/station-128',
RemoteAddress => '87.242.82.108',
RemotePort => 8000,
BindPort => 8103, # for only one permanent client
GetTags => sub {
warn Dumper $_[ARG0];
},
);
POE::Kernel->run;
DESCRIPTION
The module is a non-blocking client to Icecast streaming multimedia server for getting stream tags.
POE::Component::Client::Icecast is based on POE::Component::Client::TCP.
METHODS
new
POE::Component::Client::Icecast->new(
Stream => 'http://station20.ru:8000/station-128',
# or
Host => 'station20.ru',
Path => '/station-128',
RemoteAddress => '87.242.82.108',
RemotePort => 8000,
BindPort => 8103, # for only one permanent client
# get tags from server
GetTags => sub {
warn Dumper $_[ARG0];
},
);
PoCo::Client::Icecast's new method takes a few named parameters:
Stream
The stream url to Icecast stream, which contains domain, port and path to stream. Recommended.
Instead of this param you ought to use: Host, Path, RemoteAddr and RemotePort.
Host
The host of Icecast server (without port).
Path
The path to Icecast stream.
RempoteAddress
The remote address to connect to Icecast server (host or ip). It's a param of POE::Component::Client::TCP.
RemotePort
The remote port to connect. It's a param of POE::Component::Client::TCP.
BindAddress
The param specifies the local interface address to bind to before starting to connect. It's a param of POE::Component::Client::TCP.
BindPort
The param sets the local socket port that the client will be bound to before starting to connect. It's a param of POE::Component::Client::TCP.
GetTags
The event of getting tags from server, it is called for each fully parsed input record from Icecast server.
$_[ARG0] contains a hashref of tags.
DEBUG & TRACE MODES
The module supports debug mode and trace mode (trace POE session).
BEGIN { $ENV{ICECAST_DEBUG}++; $ENV{ICECAST_TRACE}++ };
use POE::Component::Client::Icecast;
EXAMPLES
See examples/test.pl in this distributive.
SEE ALSO
DEPENDENCIES
POE::Component::Client::TCP POE::Filter::Stream POE::Session Carp
AUTHOR
Anatoly Sharifulin, <sharifulin at gmail.com>
BUGS
Please report any bugs or feature requests to bug-poe-component-client-icecast at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=poe-component-client-icecast. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT & DOCUMENTATION
You can find documentation for this module with the perldoc command.
perldoc POE::Component::Client::Icecast
You can also look for information at:
Github
http://github.com/sharifulin/poe-component-client-icecast/tree/master
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=poe-component-client-icecast
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
COPYRIGHT & LICENSE
Copyright (C) 2009 Anatoly Sharifulin
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.