bass真是太好用了!

王朝delphi·作者佚名  2006-01-09
宽屏版  字体: |||超大  

可以随意播放你自己的文件;

下面是delphi7中我用bass.dll播放文件的实例.

(和分类标题一样,写的很菜的,请多多包含指点啊)

说明:

要播放文件名为wdf的某段数据;

偏移offset处开始,读取size大小的内容到memoryStream中,

然后调用bass播放;

(这是目前bass的版本,老版本没试过,呵呵)

function bassMp3(wdf: string; offset,size: LongWord; mem: boolean): boolean;

var fs: TfileStream;

f: pchar;

volume: integer;

p: Pointer;

begin

volume := 40;

if (mem) then

begin

BASS_Free; //free first;

freeandnil(mp3ms);//freeandnil(ms);

fs := TfileStream.Create(wdf,fmOpenRead,fmShareDenyNone);

fs.Seek(offset,soFromBeginning);

mp3ms := TmemoryStream.Create;//ms := TmemoryStream.Create;

mp3ms.CopyFrom(fs,size);//ms.CopyFrom(fs,size);

p := mp3ms.Memory;//p := ms.Memory;

freeandnil(fs);

BASS_Init(1,22050,0,0,nil);//if BASS_Init(1,22050,0,0,nil) then Logs('init ok') else logMsg('init failed');

BASS_SetVolume(volume);//if BASS_SetVolume(volume) then logs(Format('Volume set to %d',[volume])) else LogMsg('Set Volume failed');

hbs := BASS_StreamCreateFile(mem,p,0,size,BASS_STREAM_AUTOFREE);

Bass_ChannelPlay(hbs,false);//if (Bass_ChannelPlay(hbs,false)) then logs('play failed') else logs('playing...');

//while (Bass_) do Bass_ChannelPlay(hbs,false);

end

end;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有