20160113第一个ANDRIOD开发日志
2016-01-13 17:00
239 查看
今天开发了第一个andriod程序,测试录音和播放功能。源码是网上抄来的。
代码:
unit Unit2;
interface
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;
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;
implementation
{$R *.fmx}
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上一直无法显示连接的手机,后来换了一跟连接线就可以了,郁闷。
代码:
unit Unit2;
interface
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;
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;
implementation
{$R *.fmx}
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上一直无法显示连接的手机,后来换了一跟连接线就可以了,郁闷。
相关文章推荐
- BZOJ 3203 Sdoi2013 保护出题人 凸包+三分
- SASS用法指南
- spring and hibernate mixed
- Win7下JDK环境变量的配置
- httpClient post WebAPI
- 小随笔:Context共用
- iOS 百度地图_大头针点击_区别点击哪个_点击效果改变
- Java集合框架GS Collections详解
- 编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件(一共4篇文章)
- 第二章 基于JAX-WS开发Web services
- Sass用法指南_20151109笔记
- Win7-64位系统中VC++ 6.0打开文件崩溃解决办法
- 代码控制UI,View
- 三行情书
- eclipce 快捷键
- 协议方法每次点击tabBar回到根视图
- ABA问题及避免
- App性能测试
- C#值类型以及默认值记录下
- Weblogic在Linux下启动特别慢及进入控制台慢的解决方法