E
eaglepsm
Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序中大量的代码是基于6.4的版本的,现在准备升级到9.0,但许多技术问题没有解决,所以我想暂时将6.4和9.0集成到程序中,但当我一旦在project中加入包含TWindowsMediaPlayer控件的窗体后,6.4版本的MediaPlayer11.SelectionEnd便无法访问,用6.4版本的TMediaPlayer打开asf文件后显示“未指定的错误”,无奈只有在运行时在需要使用9.0的控件时利用
Application.CreateForm(TFormWindowsMediaPlayer,FormWindowsMediaPlayer);
创建9.0的窗体,但又出现了新的问题,6.4版本的控件在未创建9.0的窗体时能够基本正常地播放asf文件(有的asf文件播放时出现停顿),一旦创建9.0的控件后,就出现“未指定的错误”,我本想利用FormWindowsMediaPlayer.Free来释放窗体,但不行,以下是我的代码:
procedure TFormMediaFileList.select_player();
var
bl:boolean;
begin
bl:=FormOptionSetDlg.CheckBoxUseWmp9.Checked;
media_ext:=ExtractFileExt(media_file_path);
//查找媒体文件的扩展名
if MicroSoftMedia.IndexOf(media_ext)<>-1 then
//用微软的播放器播放
begin
FormMediaPlay.FormStyle:=fsStayOnTop;
FormRlPlay.FormStyle:=fsNormal;
if bl=true then
//用9.0的播放器播放
begin
Application.CreateForm(TFormWindowsMediaPlayer,FormWindowsMediaPlayer);
FormWindowsMediaPlayer.Show;
FormWindowsMediaPlayer.start_play_movie_with_microsoft_control(media_file_path);
end else
//用6.4的播放器播放
begin
if FindWindow('TFormWindowsMediaPlayer', 'FormWindowsMediaPlayer')<>0 then
//如果以前已经创建了9.0的窗体则删除
begin
FormWindowsMediaPlayer.Free;
end;
FormMediaPlay.Show();
FormMediaPlay.start_play_movie_with_microsoft_control(media_file_path);
end;
FormMain.active_player:=MicroSoft
end
else
if RealNetWorkMedia.IndexOf(media_ext)<>-1 then
//用realplayer播放
begin
FormRlPlay.FormStyle:=fsStayOnTop;
FormMediaPlay.FormStyle:=fsNormal;
FormRlPlay.Show();
FormMain.start_play_movie(media_file_path);
FormMain.active_player:=RealNetWork;
end;
if FormOptionSetDlg.CheckBoxAutoRecordAfterOpenOtherMediaFile.Checked=true then
begin
//not finished
end;
hide();
end;
Application.CreateForm(TFormWindowsMediaPlayer,FormWindowsMediaPlayer);
创建9.0的窗体,但又出现了新的问题,6.4版本的控件在未创建9.0的窗体时能够基本正常地播放asf文件(有的asf文件播放时出现停顿),一旦创建9.0的控件后,就出现“未指定的错误”,我本想利用FormWindowsMediaPlayer.Free来释放窗体,但不行,以下是我的代码:
procedure TFormMediaFileList.select_player();
var
bl:boolean;
begin
bl:=FormOptionSetDlg.CheckBoxUseWmp9.Checked;
media_ext:=ExtractFileExt(media_file_path);
//查找媒体文件的扩展名
if MicroSoftMedia.IndexOf(media_ext)<>-1 then
//用微软的播放器播放
begin
FormMediaPlay.FormStyle:=fsStayOnTop;
FormRlPlay.FormStyle:=fsNormal;
if bl=true then
//用9.0的播放器播放
begin
Application.CreateForm(TFormWindowsMediaPlayer,FormWindowsMediaPlayer);
FormWindowsMediaPlayer.Show;
FormWindowsMediaPlayer.start_play_movie_with_microsoft_control(media_file_path);
end else
//用6.4的播放器播放
begin
if FindWindow('TFormWindowsMediaPlayer', 'FormWindowsMediaPlayer')<>0 then
//如果以前已经创建了9.0的窗体则删除
begin
FormWindowsMediaPlayer.Free;
end;
FormMediaPlay.Show();
FormMediaPlay.start_play_movie_with_microsoft_control(media_file_path);
end;
FormMain.active_player:=MicroSoft
end
else
if RealNetWorkMedia.IndexOf(media_ext)<>-1 then
//用realplayer播放
begin
FormRlPlay.FormStyle:=fsStayOnTop;
FormMediaPlay.FormStyle:=fsNormal;
FormRlPlay.Show();
FormMain.start_play_movie(media_file_path);
FormMain.active_player:=RealNetWork;
end;
if FormOptionSetDlg.CheckBoxAutoRecordAfterOpenOtherMediaFile.Checked=true then
begin
//not finished
end;
hide();
end;