用Tmediaplayer 怎么播放内存中的文件-高分奉送(100分)

  • 主题发起人 主题发起人 a_abj
  • 开始时间 开始时间
A

a_abj

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把声音文件放到内存里,然后用tmediaplayer控件播放内存中的文件
如何做!给个例子!


 
没有测试,随手写的!

procedure TForm1.PlaySndFromMemoryClick(Sender: TObject);
var
f: file;
p: pointer;
fs: integer;
begin

AssignFile(f, 'hello.wav');
Reset(f,1);
fs := FileSize(f);
GetMem(p, fs);
BlockRead(f, p^, fs);
CloseFile(f);
MediaPlayer1.FileName := p
1
MediaPlayer1.Open;
2
FreeMem(p, fs);
end;


1、2两句可以用sndPlaySound(p, SND_MEMORY or SND_SYNC);代替。
当文件大于可用内存时,sndPlaySound函数就不能进行播放,要用mciSendCommand。
 
MediaPlayer1.FileName := p
p是指针型的,filename是字符串型的
还是不行啊
 
TMediaPlayer好像应该有具体的文件名,如果你是声音,可以直接使用
sndPlaySound,而不要使用TMediaPlayer,否则现保存成本地文件,以后再删除
 
后退
顶部