delphi 音乐播放地址出现问题(求救)
我找到了一个音乐播放代码:varmciOpenParms:TMCI_Open_Parms;m_MCIDeviceID:MCIDEVICEID;procedureTForm...
我找到了一个音乐播放代码:
var
mciOpenParms: TMCI_Open_Parms;
m_MCIDeviceID: MCIDEVICEID;
procedure TForm1.FormCreate(Sender: TObject);
var
mciPlayParms:MCI_PLAY_PARMS;
ret: integer;
begin
try
begin
mciOpenParms.lpstrDeviceType:='';
mciOpenParms.lpstrElementName := '做你的爱人.mp3';
mciSendCommand(0,MCI_OPEN,MCI_OPEN_ELEMENT,DWORD(@mciOpenParms));
m_MCIDeviceID := mciOpenParms.wDeviceID;
mciPlayParms.dwCallback := Form1.Handle;
mciPlayParms.dwFrom := 0;
ret := mciSendCommand(m_MCIDeviceID,MCI_PLAY,MCI_FROM or MCI_NOTIFY,integer(@mciPlayParms));
end;
except
end;
代码可以实现,但是我想让音乐的地址从edit中取,可是我试了很多次都不成功,报错:[Error] Unit1.pas(201): Incompatible types: 'String' and 'PAnsiChar'。求高手解决或者有其它的音乐播放代码也可以。速救,谢谢! 展开
var
mciOpenParms: TMCI_Open_Parms;
m_MCIDeviceID: MCIDEVICEID;
procedure TForm1.FormCreate(Sender: TObject);
var
mciPlayParms:MCI_PLAY_PARMS;
ret: integer;
begin
try
begin
mciOpenParms.lpstrDeviceType:='';
mciOpenParms.lpstrElementName := '做你的爱人.mp3';
mciSendCommand(0,MCI_OPEN,MCI_OPEN_ELEMENT,DWORD(@mciOpenParms));
m_MCIDeviceID := mciOpenParms.wDeviceID;
mciPlayParms.dwCallback := Form1.Handle;
mciPlayParms.dwFrom := 0;
ret := mciSendCommand(m_MCIDeviceID,MCI_PLAY,MCI_FROM or MCI_NOTIFY,integer(@mciPlayParms));
end;
except
end;
代码可以实现,但是我想让音乐的地址从edit中取,可是我试了很多次都不成功,报错:[Error] Unit1.pas(201): Incompatible types: 'String' and 'PAnsiChar'。求高手解决或者有其它的音乐播放代码也可以。速救,谢谢! 展开
3个回答
2011-05-24
展开全部
1) 启动DELPHI,打开一个新的标准工程。单击“component”菜单import activex control…,出现如图所示对话框
2)选择如图所示realplayer activex control library [version1.0]单击install按钮,出现对话框单击OK继续即可
在ACTIVE X标签页上可以找到REAL图标。
其主要属性有:autostart:自动开始 source:数据源,即其它多媒体的文件名。
1. 列表框LISTBOX
列表框表面上与编辑框很相似,但不同是在列表框内容可以放很多选项每一个选项都有自已的单击事件.
当列表框不能同时显示所有选项时,将自动加上一个垂直的滚动条,使用户可以上下滚动列表框,以查阅所有的选项.
常用的属性有:
ITEMS 以行为单位的,列表框中选项的集合,组合框也有.
ITEMSINDEX选项的索引值.
SORTED 决定选项是否排序
COLUMNS 决定列表框的列数,列表框也有.
MULTISELECT是否可以选择多项,列表框独有.
SELCOUNT表示被选中项的数目,只读,列表框独有
SELECTED 用来设置或返回某选项是否被选中.
例如: LISTBOX1.ITEMS.ADD(‘李小明’);
LISTBOX1.ITEMS.DELETE(5)删除第6行.
LISTBOX1.ITEMS.INSERT(3,’王二’);
LISTBOX1.ITEMS.MOVE(2,4);
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if listbox1.ItemIndex=0 then
begin
realaudio1.Source:='G:\歌曲\小薇.mp3';
realaudio1.AutoStart:=true;
end;
if listbox1.ItemIndex=1 then
begin
realaudio1.Source:='G:\歌曲\爱你十分泪七分.mp3';
realaudio1.AutoStart:=true;
end;
if listbox1.ItemIndex=2 then
begin
realaudio1.Source:='G:\歌曲\别说我的眼泪你无所谓.mp3';
realaudio1.AutoStart:=true;
end;
if listbox1.ItemIndex=3 then
begin
realaudio1.Source:='G:\歌曲\当你孤单你会想起谁.mp3';
realaudio1.AutoStart:=true;
end;
if listbox1.ItemIndex=4 then
begin
realaudio1.height:=300;
realaudio1.Source:='G:\电影\新蜀山ssz01.rm';
realaudio1.AutoStart:=true;
end;
end;
end;
2)选择如图所示realplayer activex control library [version1.0]单击install按钮,出现对话框单击OK继续即可
在ACTIVE X标签页上可以找到REAL图标。
其主要属性有:autostart:自动开始 source:数据源,即其它多媒体的文件名。
1. 列表框LISTBOX
列表框表面上与编辑框很相似,但不同是在列表框内容可以放很多选项每一个选项都有自已的单击事件.
当列表框不能同时显示所有选项时,将自动加上一个垂直的滚动条,使用户可以上下滚动列表框,以查阅所有的选项.
常用的属性有:
ITEMS 以行为单位的,列表框中选项的集合,组合框也有.
ITEMSINDEX选项的索引值.
SORTED 决定选项是否排序
COLUMNS 决定列表框的列数,列表框也有.
MULTISELECT是否可以选择多项,列表框独有.
SELCOUNT表示被选中项的数目,只读,列表框独有
SELECTED 用来设置或返回某选项是否被选中.
例如: LISTBOX1.ITEMS.ADD(‘李小明’);
LISTBOX1.ITEMS.DELETE(5)删除第6行.
LISTBOX1.ITEMS.INSERT(3,’王二’);
LISTBOX1.ITEMS.MOVE(2,4);
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if listbox1.ItemIndex=0 then
begin
realaudio1.Source:='G:\歌曲\小薇.mp3';
realaudio1.AutoStart:=true;
end;
if listbox1.ItemIndex=1 then
begin
realaudio1.Source:='G:\歌曲\爱你十分泪七分.mp3';
realaudio1.AutoStart:=true;
end;
if listbox1.ItemIndex=2 then
begin
realaudio1.Source:='G:\歌曲\别说我的眼泪你无所谓.mp3';
realaudio1.AutoStart:=true;
end;
if listbox1.ItemIndex=3 then
begin
realaudio1.Source:='G:\歌曲\当你孤单你会想起谁.mp3';
realaudio1.AutoStart:=true;
end;
if listbox1.ItemIndex=4 then
begin
realaudio1.height:=300;
realaudio1.Source:='G:\电影\新蜀山ssz01.rm';
realaudio1.AutoStart:=true;
end;
end;
end;
展开全部
这很简单,将edit.text的字符串难过pchar进行转换,这样就没有问题。主要是类型的问题。
mciOpenParms.lpstrElementName := pchar(edit1.text);
mciOpenParms.lpstrElementName := pchar(edit1.text);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你选择一个opendialog控件
mciopenparms.lpstrelementname:=pchar(opendialog.filename);
从播放列表里选择要播放的歌曲
mciopenparms.lpstrelementname:=pchar(opendialog.filename);
从播放列表里选择要播放的歌曲
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询