今天開發了第一個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上一直沒法顯示鏈接的手機,後來換了一跟鏈接線就能夠了,鬱悶。