効果音(10秒以内の短い音)を鳴らす動画です。
途中難易度の高いところもありますが、結論「音を鳴らす」だけならコピペでけっこう行けます。
プロジェクト名
プロジェクト、カンパニードメイン、パッケージネームを同じにするとコピペエラーが減ります。
Application name TestSound
Company Domain test.com
Package name com.test.testsound
activity_main.xml (完成)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="com.test.testsound.MainActivity"> <Button android:onClick="onA" android:text="a" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:onClick="onB" android:text="b" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
MainActivity.java(完成)
package com.test.testsound; import android.media.AudioAttributes; import android.media.AudioManager; import android.media.SoundPool; import android.os.Build; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { // ① 準備(コンポを部屋に置く・コピペOK) SoundPool soundPool; // 効果音を鳴らす本体(コンポ) int mp3a; // 効果音データ(mp3) int mp3b; // 効果音データ(mp3) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // ② 初期化(電源を入れる・コピペOK) 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(); } // ③ 読込処理(CDを入れる) mp3a = soundPool.load(this, R.raw.a, 1); mp3b = soundPool.load(this, R.raw.b, 1); } public void onA(View v){ // ④ 再生処理(再生ボタン) soundPool.play(mp3a,1f , 1f, 0, 0, 1f); } public void onB(View v){ // ④ 再生処理 (再生ボタン) soundPool.play(mp3b,1f , 1f, 0, 0, 1f); } }