bass真是太好用了!

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 rjkc 的 blog

可以随意播放你自己的文件;
下面是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;

本文关键:bass真是太好用了!
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top