2013-04-07 88 views
0

我使用TMediaPlayerControl在我的应用程序中显示视频。在Windows XP的Firemonkey中播放视频

这是我的代码来显示视频:

TrailerMediaPlayer.FileName := GetcurrentDir + '\Trailer\Trailer.avi'; 
if (TrailerMediaPlayer.State = TMediaState.Stopped) and 
    (TrailerMediaPlayer.CurrentTime < TrailerMediaPlayer.Duration) then 
begin 
    TrailerMediaPlayer.Play; 
    PositionTrackBar.Max := TrailerMediaPlayer.Duration; 
end 
else 
begin 
    TrailerMediaPlayer.CurrentTime := 0; 
end; 

它在Windows 7/8,但在Windows XP中,我得到unsupported media file错误!

请注意,Windows Media Player在Windows XP中播放我的Trailer.avi。

如何在没有任何额外组件的情况下在每个Windows操作系统上(自XP)播放此视频?

+0

你没有说你的视频是什么编解码器 – 2013-04-07 12:44:07

+0

我的视频是未压缩的avi。我尝试了这个Windows 7样本视频,但它不工作。(Wildlife.wmv) – sma6871 2013-04-07 13:06:19

回答

0

获得madexcept,或任何其他类似的工具,并张贴应用程序的堆栈。另外,这应该是机器上安装的编解码器和其他应用程序的问题,即使电影是在XP的Windows Media Player中播放的。

有几点建议:使用Windows Media Player ActiveX或来自VideoLan的ActiveX plugin

此外,一定要遵循这个http://docwiki.embarcadero.com/Libraries/XE3/en/FMX.Media.TMediaPlayerControlhttp://docwiki.embarcadero.com/RADStudio/XE3/en/Building_a_Basic_Media_Player

PS:请注意,FireMonkey不VCL - http://docwiki.embarcadero.com/RADStudio/XE3/en/Converting_from_VCL_to_FireMonkey不要混用两种。 (我只是怀疑你这样做,所以没有代码我不能确定它...)

+0

我在[本文](http://docwiki.embarcadero.com/RADStudio/XE3/en/Building_a_Basic_Media_Player)中做了所有事情,但在一个新的Windows XP(没有任何编解码器)应用程序会抛出一个异常,这是媒体文件不支持,但媒体播放器播放它! – sma6871 2013-04-07 11:30:00

+0

即使我不喜欢这些惊叹号,你是否可以发布你已经完成的一个小例子,以及我建议你在答案中做的异常堆栈? – RBA 2013-04-07 11:37:35

+0

我没有更重要的代码。我的问题中的代码是在'PlayButtonClick'事件,它在我的Windows 8上工作。 – sma6871 2013-04-07 12:03:40