Peguei um modulo, tal que fora feito pelo fvox,
no qual é muito simples de usar, muito rapido
e de muito conveniente em determinados momentos!
minhas perguntas virão encravadas no codigo
Código PHP:
package FLV::AudioExtractor; use strict;use warnings; use Moose;use Carp;
our $VERSION = '0.01'; #legal esse comando... hahaha
has filename => ( # que diabo de comando é esse "has"... alguem pode explicar
is => 'rw', # de preferencia o proprio autor!!!
isa => 'Str', required => 1);
sub extract { my ($self, $output) = @_; # Esse "croak" é o mesmo de "die" ??? caso não explicar tambem
open my $fh, '<', $self->filename or croak('Can\'t open ' . $self->filename . ': ' . $!);
open my $mp3, '>', $output or croak('Cant\'t open ' . $output . ': ' . $!);
binmode $fh; # Legal, aqui faz ler em modo binario o arquivo
binmode $mp3; # Mas... como você pegou a parte de audio
# Dentro do binario???
my $offset = 13; my $data_size = 0; my $data = undef; read($fh, $data, $offset); while(((-s $self->filename) - $offset) > $data_size) { read($fh, $data, 12);
my @unpacked = unpack('C1 C3 C3 C1 C3 C1', $data); # WTH???
$data_size = ($unpacked[1] << 16) | ($unpacked[2] << 8) | $unpacked[3];
read($fh, $data, ($data_size - 1));
my $previous_tag_size = undef;
read($fh, $previous_tag_size, 4);
if($unpacked[0] == 8) { print $mp3 $data if ($unpacked[11] >> 4) == 2; } $offset += $data_size + 15; } close $fh;
close $mp3;
}
1;
__END__
No mais... muito obrigado!!!
Endereço do Modulo no CPAN -> mais engraçado é a fotinha dele.... hahaha (decepção)
Endereço da Source -> que já esta no codigo acima!!!