トップへ(mam-mam.net/)

Androidのボタンのクリック音を出すアプリケーションを作る ~Delphiでお手軽プログラミング

検索:

Androidのボタンのクリック音を出すアプリケーションを作る ~Delphiでお手軽プログラミング

1.Delphiの起動とフォームへのボタンの設定

Delphiを起動し[ファイル]⇒[新規作成]⇒[マルチデバイスアプリケーション -Delphi]をクリックします。
「空のアプリケーション」を選択して[OK]ボタンをクリックします。
右上ペインの「ターゲットプラットフォーム」を[Android 64 ビット]をダブルクリックして切り替えます。
右下ペインの「パレット」からTButtonをフォームにドラッグします。

2.ソースコードの記述

フォームの「Button1」をダブルクリックしてエディタに切り替えます。
以下ソースコードを入力します。
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Controls.Presentation,
  FMX.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private 宣言 }
  public
    { public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses
  Androidapi.Helpers, Androidapi.JNI.Media,
  Androidapi.JNI.GraphicsContentViewText;

procedure TForm1.Button1Click(Sender: TObject);
var Audio: JAudioManager;
begin
  Audio:=TJAudioManager.Wrap(
    TAndroidHelper.Activity.getSystemService(
      TJContext.JavaClass.AUDIO_SERVICE
    )
  );
  Audio.playSoundEffect(TJAudioManager.JavaClass.FX_KEY_CLICK);
end;

end.

3.保存

「すべて保存(Shift+Ctrl+S」ボタンを押して、プロジェクトとユニットを同じフォルダ内に保存します。

4.実行

実機をUSB接続して、右ペインのターゲットから実機をダブルクリックして選択し、
「デバッガを使わず実行」ボタンを押すと、コンパイルされ、インストールされ、実機で起動します。
「Button1」をタップすると、クリック音がなります。

5.その他

鳴らす音は、
TJAudioManager.JavaClass.FX_KEY_CLICK (キーボードと方向パッドのクリック音)
の他、以下の指定が可能です。
TJAudioManager.JavaClass.FX_FOCUS_NAVIGATION_UP (フォーカスが上にいく音)
TJAudioManager.JavaClass.FX_FOCUS_NAVIGATION_DOWN (フォーカスが下にいく音)
TJAudioManager.JavaClass.FX_FOCUS_NAVIGATION_LEFT (フォーカスが左にいく音)
TJAudioManager.JavaClass.FX_FOCUS_NAVIGATION_RIGHT (フォーカスが右にいく音)
TJAudioManager.JavaClass.FX_KEYPRESS_STANDARD (標準のキーを押す音)
TJAudioManager.JavaClass.FX_KEYPRESS_SPACEBAR (スペースキーを押す音)
TJAudioManager.JavaClass.FX_KEYPRESS_DELETE (削除キーを押す音)
TJAudioManager.JavaClass.FX_KEYPRESS_RETURN (リターンキーを押す音)
TJAudioManager.JavaClass.FX_KEYPRESS_INVALID (無効なキーを押す音)

playSoundEffect(音の種類);
関数は以下のようにボリュームを指定することも出来ます。
playSoundEffect(音の種類,ボリューム);

(例)
Audio.playSoundEffect(TJAudioManager.JavaClass.FX_KEYPRESS_RETURN,1.0);