问题描述
我已按照 https://blogs.embarcadero.com/add-windows-media-player-to-your-delphi-applications/
中的建议导入 WindowsMediaPlayer ActiveX 控件,但是当我执行播放命令时,总是收到错误消息 access violation at xxxxx
,其中 xxxxx 是 c:\WINDOWS\sysWOW64\D3D9.DLL
中的地址。
编辑
代码是
unit Uvideo;
interface
uses
Winapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,Vcl.Controls,Vcl.Forms,Vcl.Dialogs,Vcl.ComCtrls,Vcl.MPlayer,Vcl.ExtCtrls,Vcl.StdCtrls,Vcl.OleCtrls,WMPLib_TLB;
type
TForm7 = class(TForm)
TreeView1: TTreeView;
Splitter1: TSplitter;
Button1: TButton;
WindowsMediaPlayer1: twindowsMediaPlayer;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
{$R *.dfm}
procedure TForm7.Button1Click(Sender: TObject);
begin
WindowsMediaPlayer1.URL := 'file://H:\SYstemFOLDERS\videos\WinXVideos\L533.mp4';
WindowsMediaPlayer1.controls.play; // the AV raises even without this statement
end;
end.
新编辑
使用上面的代码,我可以播放 mp3,但不能播放 mp4。
如果我使用...
begin
WindowsMediaPlayer1.openPlayer('file://H:\SYstemFOLDERS\videos\WinXVideos\L533.mp4');
end
...它播放 mp4 文件(但在第二个媒体播放器上下文中)。
我的 Delphi 是 Win32,我已经将组件导入为 win32。
问题是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)