見出し画像

JavaでAndroidアプリ開発(ジャグラー風大当たりアプリの作成)

キャプチャ

①効果音の素材をダウンロードする。

今回は、以下のサイトで収集しました。

キャプチャ

適当に名前を変更

※画像名の先頭に数字や途中、大文字が入っているとエラーがでます。

キャプチャ

パチスロジャグラー風の大当たりボタンみたくするにはWavePadツールを使って色々編集すると良いとおもいます。


②rawフォルダを作成し、①の素材を入れ込む

resを右クリックし、新規を押して、ディレクトリを選択し、rawフォルダを作成します。

キャプチャ

作成できたrawフォルダへ先ほどダウンロードした素材をドラッグ&ドロップで入れ込みます。

キャプチャ

③ボタンを配置

押したら音がなるボタンをデザインします。(適当)

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">

   <Button
       android:id="@+id/mybottun"
       android:layout_width="200dp"
       android:layout_height="200dp"
       android:onClick="click_a"
       android:text="効果音"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintStart_toStartOf="parent"
       app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

キャプチャ


④音を鳴らすコード

MainActivity.java

package com.example.sound;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;


public class MainActivity extends AppCompatActivity {


   SoundPool soundPool; //音を鳴らす本体
   int sound_a; //効果音データa


   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);


       //音を鳴らすための準備
       if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
           soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
       } else {
           AudioAttributes attr = new AudioAttributes.Builder()
                   .setUsage(AudioAttributes.USAGE_MEDIA)
                   .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
                   .build();
           soundPool = new SoundPool.Builder()
                   .setAudioAttributes(attr)
                   .setMaxStreams(5)
                   .build();
       }


       //音の読み込み
       sound_a = soundPool.load(this, R.raw.a, 1);


   }

    //ボタンをクリックした時の動作
   public void click_a(View view){
       soundPool.play(sound_a, 1f, 1f, 0, 0,1f);


   }
}


■SoundPoolと変数を宣言し、使えるようにする。

  SoundPool soundPool; //音を鳴らす本体
  int sound_a; //効果音データa

※SoundPoolは音を鳴らすための本体みたいなイメージ

■音を鳴らすための初期化(コピペ)

       if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
          soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
      } else {
          AudioAttributes attr = new AudioAttributes.Builder()
                  .setUsage(AudioAttributes.USAGE_MEDIA)
                  .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
                  .build();
          soundPool = new SoundPool.Builder()
                  .setAudioAttributes(attr)
                  .setMaxStreams(5)
                  .build();
      }

Android Studioのバージョンによって、動作を分岐させるため、コードがながったらしくなっています。コピペで問題ないです。

■音を読み込む

sound_a = soundPool.load(this, R.raw.a, 1);

変数 = soundPool.load(this.R.raw.a, 1);

■音を再生する

   public void click_a(View view){
      soundPool.play(sound_a, 1f, 1f, 0, 0,1f);
   }

soundPool.play( 変数, 左のボリューム, 右のボリューム, 聞きやすさ, ループ回数, 再生速度);

ここまでで一旦、効果音を鳴らすようなコードは終了となります。

ここから先は

2,070字 / 5画像

¥ 200

この記事が気に入ったらサポートをしてみませんか?