Geert Storme wrote:
Has anyone been able to open a WAVFILE and play it with the
Win32::Sound::WaveOut?
Documentation of this:
http://search.cpan.org/author/ACALPINI/Win32-Sound-0.45/Sound.pm
(also available here at ASPN)
====
Suppose tada.wav is IN my current dir.
$w = new Win32::Sound::WaveOut( "tada.wav") // $w should now be a WaveOut
object with the tada sound, I guess...
$w->Reset(); // Just make sure I am at the begin position
$w->Play(); // Should play, but nothing...
====
What I want to create is a number of sounds stored in memory, so I can
easily replay them without having to read the wav from disk every time.
This works for me, but I made some changes to Win32::Sound:
my $WAV = new Win32::Sound::WaveOut($infile) or die "WaveOut: $!";
$WAV->Play() or die "Play: $!";
1 until $WAV->Status();
undef $WAV;
Here are the changes I made to version 0.47:
package Win32::Sound::WaveOut;
sub new {
my($class, $one, $two, $three) = @_;
my $self = {};
bless($self, $class);
# if($one !~ /^\d+$/ # $Bill
# and not defined($two) # $Bill
# and not defined($three)) { # $Bill
# Looks like a file
# $self->Open($one);
if (($one and $one =~ /\D/) and not $two and not $three) { # $Bill
$self->Open(0, $one); # $Bill
} else {
# Default format if not given
$self->{samplerate} = ($one or 44100);
$self->{bits} = ($two or 16);
$self->{channels} = ($three or 2);
$self->OpenDevice();
}
return $self;
}
sub Volume {
my(@in) = @_;
# Allows '0%'..'100%'
# $in[0] =~ s{ ([\d\.]+)%$ }{ int($1*255/100) }ex if defined $in[0]; #$Bill
# $in[1] =~ s{ ([\d\.]+)%$ }{ int($1*255/100) }ex if defined $in[1]; #$Bill
$in[0] =~ s{ ([\d\.]+)%$ }{ int((255/100)*$1) }ex if defined $in[0]; #$Bill
$in[1] =~ s{ ([\d\.]+)%$ }{ int((255/100)*$1) }ex if defined $in[1]; #$Bill
_Volume(@in);
}
--
,-/- __ _ _ $Bill Luebkert ICQ=162126130
(_/ / ) // // DBE Collectibles Mailto:[EMAIL PROTECTED]
/ ) /--< o // // http://dbecoll.tripod.com/ (Free site for Perl)
-/-' /___/_<_</_</_ Castle of Medieval Myth & Magic http://www.todbe.com/
_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs