| Audio documentation | Contained in the Audio distribution. |
Audio::Play - interface for Audio::Data to hardware
use Audio::Data; use Audio::Play; $audio = Audio::Data->new(...) $svr = Audio::Play->new; $svr->play($audio);
Audio::Play is an wrapper class which loads Audio::Play::$^O i.e. a per-platform driver.
Each class provides the following interface:
Create the server and return an object. $wait is supposed to determine whether to wait for device (and for how long) but is currently not really working for many devices.
Set sample rate (if possible) to $rate.
Return sample rate.
Play $audio via the hardware. Should take steps to match hardware and data's sampling rate.
Set gain (if possible).
Wait for playing to complete.
Destructor flushes and closes hardware.
Nick Ing-Simmons <Nick@Ing-Simmons.net>, but sub-modules have been collected from wide variety of places.
| Audio documentation | Contained in the Audio distribution. |
package Audio::Play; our $VERSION = '1.000'; use AutoLoader; require Audio::Data; # DynaLoader is for derived classes to simplify auto-generated sub-class.pm require DynaLoader; @ISA = qw(AutoLoader DynaLoader); require "Audio/Play/$^O.pm"; sub new { my $class = shift; return "Audio::Play::$^O"->new(@_); } sub rate { my $self = shift; croak("Cannot set rate") if @_; return 8000; } sub DESTROY { } sub speaker { my $self = shift; carp("Cannot set speaker") if @_; return 1; } sub headphone { my $self = shift; carp("Cannot set headphone") if @_; return 0; } sub volume { my $self = shift; carp("Cannot set volume") if @_; return 1.0; } sub flush { } 1; __END__