zoukankan      html  css  js  c++  java
  • delphi android 录像

    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.
  • 相关阅读:
    SEO在网页制作中的应用
    日期控件选2016-01-01却变为2015-01-01问题
    IE8兼容placeholder的方案
    各种乱码,编码问题设置方法整理(UTF-8)
    JQuery简单实现图片轮播效果
    解决 jsp eclipse异常 【The import javax.servlet cannot be resolved】
    tomcat加载不了spring-webjar终极解决办法
    MyEclipse Web Project导入Eclipse Dynamic Web Project,无法部署到tomcat问 题
    2020-11-01助教一周总结(第九周)
    2020-10-25助教一周总结(第八周)
  • 原文地址:https://www.cnblogs.com/qiufeng2014/p/4809144.html
Copyright © 2011-2022 走看看