推薦內置android控件的開源項目alcinoe


開源地址: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上能運行了,於是做了進一步測試:

左側圖是使用ALFmxControls的繪圖效率,平均近52幀,右側圖為Delphi原生繪制效率,平均11帖,近5陪的差別。

在我的紅米1S上能得到這樣效率,真不可思異,要知道,作為測試機,這可是近三年多的機器,只能證明作者這個控件實現的太牛了!

估計看到這里,你也想試試,果真有這么神奇嗎。相信我,不騙你,一試便知。反正我是准備在項目中啟用這個控件了,雖然說盡量不用第三方控件,以減少項目后期的維護量,但對於這個開源控件來說,值得投入。

如果真要試用,還得有思想准備,就是整個開源內容近1G大小,拉回來不容易,我是拉了半天整不回來,還是Q友努力傳給我的。如果你也需要,也可以找我,我的QQ:391879。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM