効果音(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); } }



