#!/usr/bin/perl use strict; use warnings; use Audio::BASSXS; our $audio = 'test.mp3'; open(FH, "<", $audio) || die "Can't open $audio: $!"; binmode(FH); sub testsub { # We get 4 parameters in the @_: # ($handle,$buffer,$length,$user) = @_; my $read = sysread(FH, $_[1], $_[2]); unless ($read) { $read = $read|BASS_STREAMPROC_END; } warn "$read\n"; return $read; } BASS_Init(1,44100,0,0,0); my $stream = BASS_StreamCreate(44100,2,0,\&testsub, 0); warn BASS_ErrorString(BASS_ErrorGetCode) unless $stream; BASS_StreamPlay($stream,0,BASS_SAMPLE_LOOP); sleep(10); close(FH);