加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi android 录像(使用了JMediaRecorder,MediaRecorder的使

发布时间:2020-12-15 09:53:38 所属栏目:大数据 来源:网络整理
导读:delphi xe系列自带的控件都无法保存录像,经网友帮忙,昨天终于实现了录像功能(但有个问题是录像时无画面显示),程序主要使用了JMediaRecorder,MediaRecorder的使用方法可参考网上java的相关说明,下面代码是可以正常录像的: unit Unit8;interfaceuses Sy

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.

?

?

https://www.cnblogs.com/qiufeng2014/p/4809144.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读