20160113第一個ANDRIOD開發日誌

今天開發了第一個andriod程序,測試錄音和播放功能。源碼是網上抄來的。android

代碼:ios

unit Unit2;測試

interfaceorm

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  FMX.Media, System.IOUtils;xml

type
  TForm2 = class(TForm)
    btnStartRecord: TButton;
    btnStopRecord: TButton;
    imgOn: TLabel;
    btnPlay: TButton;
    procedure btnStartRecordClick(Sender: TObject);
    procedure btnStopRecordClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnPlayClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;開發

var
  Form2: TForm2;
  FMicrophone: TAudioCaptureDevice;源碼

implementationit

{$R *.fmx}io

procedure TForm2.btnPlayClick(Sender: TObject);
var
  a: TMediaPlayer;
begin
  a := TMediaPlayer.Create(Self);
  try
    a.FileName := TPath.GetHomePath + '/RecordTest.3GP';
    a.Play
  finally
    FreeAndNil(a);
  end;
end;編譯

procedure TForm2.btnStartRecordClick(Sender: TObject);
//開始錄音
begin
  FMicrophone := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice;
  if Assigned(FMicrophone) then
  begin
    FMicrophone.FileName := TPath.GetHomePath + '/RecordTest.3GP';
    try
      FMicrophone.StartCapture;
      imgOn.Visible := True;
    except
      on e: Exception do
      begin
        imgOn.Visible := False;
        ShowMessage( '設備不識別或不支持。' + e.Message);
      end
    end;
  end
  else
    ShowMessage('沒有可用的麥克風。');
end;

procedure TForm2.btnStopRecordClick(Sender: TObject);
//中止錄音
begin
  if Assigned(FMicrophone) then
  try
    if FMicrophone.State = TCaptureDeviceState.Capturing then
    begin
      FMicrophone.StopCapture;
      imgOn.Visible := False;
    end;
  except
    imgOn.Visible := False;
    ShowMessage('設備不識別或不支持');
  end;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  imgOn.Visible := False;
end;

end.

幾個問題:

1.發佈:project->deployment,點擊deploy就能夠了。就能夠產生一個APK文件,經過QQ傳輸到手機上,就能夠安裝運行了,好神奇。

2.運行時提示:setaudiosource failed,網上查了下,發現是權限問題,

在AndroidManifest.xml文件中添加:

<uses-permission
android:name="android.permission.RECORD_AUDIO">
</uses-permission>

3.230上的DELPHI7一直運行有問題,以前也沒有去解決,一編譯就出錯,網上查了之後,刪除hkey_current_user\software\embarcadero\bds\15.0就能夠了。

4.家裏測試的時候,XE7上一直沒法顯示鏈接的手機,後來換了一跟鏈接線就能夠了,鬱悶。

相關文章
相關標籤/搜索