大きく分けて二種類の配信方法がある
...大きく分けて二種類の配信方法がある
大きく分けて二種類の配信方法がある
大きく分けて二種類の配信方法がある
1はPlayerから受信したデータをそのまま配信するだけでいいので簡単。2は動画などをフレームに分割してその単位で送る必要がある。
$stream = sub {
my ($seconds, $bytes) = (0, 0);
while (my $frame = MPEG::Audio::Frame->read($fh)) {
my $audio = Kamaitachi::Packet->new(
number => 4,
type => 0x08,
obj => $packet->obj,
data => pack('C', 0x2f) . $frame->asbin,
);
$seconds += $frame->seconds;
$bytes += $frame->length;
$self->write($socket, $audio);
last if 0.1 <= $seconds;
}
Danga::Socket->AddTimer($seconds, $stream);
};
$stream->();