delphi xe系列自带的控件都无法保存录像,经网友帮忙,昨天终于实现了录像功能(但有个问题是录像时无画面显示),程序主要使用了JMediaRecorder,MediaRecorder的使用方法可参考网上java的相关说明,下面代码是可以正常录像的:
unit Unit8; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, Androidapi.Helpers, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,FMX.Media.Android,Androidapi.JNI.Media, FMX.Controls.Presentation, FMX.StdCtrls,System.IOUtils,Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.Provider, Androidapi.JNI.App, Androidapi.JNI.Net, Androidapi.JNIBridge, FMX.Media, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os; type TForm8 = class(TForm) Button3: TButton; Button4: TButton; procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } texture : JSurfaceTexture; surface: JSurface; recorder: JMediaRecorder; public { Public declarations } end; var Form8: TForm8; implementation {$R *.fmx} procedure TForm8.Button3Click(Sender: TObject); VAR FILENAME:STRING; begin texture := TJSurfaceTexture.JavaClass.init(1); surface := TJSurface.JavaClass.init(texture); recorder := TJMediaRecorder.Create(); recorder.setPreviewDisplay(surface); recorder.setAudioSource(TJMediaRecorder_AudioSource.JavaClass.MIC ); recorder.setVideoSource(TJMediaRecorder_VideoSource.JavaClass.CAMERA); recorder.setOutputFormat(TJMediaRecorder_OutputFormat.JavaClass.MPEG_4); recorder.setAudioEncoder(TJMediaRecorder_AudioEncoder.JavaClass.DEFAULT); recorder.setVideoEncoder(TJMediaRecorder_VideoEncoder.JavaClass.H264); recorder.setMaxDuration(1800000); // 30 minutes recorder.setVideoSize(320, 240); recorder.setVideoFrameRate(15); filename:=TPath.GetSharedCameraPath+'/abc0002.mp4'; recorder.setOutputFile(StringToJString(FILENAME)); recorder.prepare(); recorder.start(); end; procedure TForm8.Button4Click(Sender: TObject); begin recorder.stop; end; end.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~