zoukankan      html  css  js  c++  java
  • delphi android 录像(使用了JMediaRecorder,MediaRecorder的使用方法)

    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

  • 相关阅读:
    CentOS5.6下SVN的安装
    在servlet中的init方法中使用getInitParameter方法空指针错误
    Linux iostat监测IO状态【转】
    自己实现一个list比较器 实现Comparator()接口
    一些常用的随机实现
    java里null强转为某个类会报错吗?
    java游戏服务器简单工厂模式
    起个头!准备写一个 设计模式系列
    HashMap根据value值排序
    java游戏服务器 策略+简单工厂
  • 原文地址:https://www.cnblogs.com/findumars/p/10236586.html
Copyright © 2011-2022 走看看