【转自红鱼儿】推荐内置android控件的开源项目alcinoe

时间:2021-07-23 05:58:46

开源地址:https://github.com/Zeus64/alcinoe

该控件包,含以下几个控件:

1.基于OpenGL实现的视频播放器 ALVideoPlayer.

ALVideoPlayer将一个视频绘制到一个TEXTURE。可以将视频完全集成到delphi form中,并且可以将任何需要的控件放在顶部,因为它支持Z-ORDER。官方的delphi视频播放器只是form顶部的原生视频播放器窗口,因此不支持Z-ORDER。

在android下作者使用ExoPlayer。ExoPlayer支持诸如动态自适应HTTP流媒体(DASH),HLS,SmoothStreaming和Common Encryption等功能,MediaPlayer不支持这些功能。它的设计很容易定制和扩展。在Ios下使用的AVPlayer也支持HLS,比如exoplayer。

2.实现了内置控件TEdit/TMemo,支持ios与android.

这个重要,官方说10.3为android实现内置控件TEdit,现在我们提前有用的了!内置控件有什么好处,当然是效率与无bug.到现在Firemonkey的TEdit/TMemo还有bug.

3.高效的doublebuffered firemonkey控件,实现了原生绘制速度

  • Rectangle
  • Circle
  • Text (Can also draw html text on ios/android/win/macos)
  • Glyph
  • etc.

我试着运行了作者提供的Demo,真是快的不得了,作者不是吹牛的。是Delphi自带的2陪速度。

4.改进了firemonkey控件

  • ScrollBox
  • TabControl
  • RangeTrackBar

还有其他方面的内容,具体可以去看,上面的内容已经足够吸引我用了!

 在试用过程中,发现在android 4.4.4上出错,在android 7.1.1正常,已经提交了问题,不知作者会不会修改,来支持低版本的android了。

后记:作者很勤奋,今早就给出了修正,解决在android 4.4.4上的问题:

找到fSurfaceTexture.setOnFrameAvailableListener(FOnFrameAvailableListener, fHandler);改成下面这样:

  try
     fSurfaceTexture.setOnFrameAvailableListener(FOnFrameAvailableListener, fHandler);
  except
     fSurfaceTexture.setOnFrameAvailableListener (FOnFrameAvailableListener); // api android <21
  end;

同时,作者也说:But by calling without locking the handle there are crashes in the video ...
Any light on it would help a lot.

在android 4.4.4上能运行了,于是做了进一步测试:

【转自红鱼儿】推荐内置android控件的开源项目alcinoe【转自红鱼儿】推荐内置android控件的开源项目alcinoe

左侧图是使用ALFmxControls的绘图效率,平均近52帧,右侧图为Delphi原生绘制效率,平均11帖,近5陪的差别。

在我的红米1S上能得到这样效率,真不可思异,要知道,作为测试机,这可是近三年多的机器,只能证明作者这个控件实现的太牛了!

估计看到这里,你也想试试,果真有这么神奇吗。相信我,不骗你,一试便知。反正我是准备在项目中启用这个控件了,虽然说尽量不用第三方控件,以减少项目后期的维护量,但对于这个开源控件来说,值得投入。

如果真要试用,还得有思想准备,就是整个开源内容近1G大小,拉回来不容易,我是拉了半天整不回来,还是Q友努力传给我的。如果你也需要,也可以找我,我的QQ:391879。

2018.8.2,作者支持了Delphi 10.2.3 ,并更新了Demo.