This example shows how you can play sound using sound pool.
Algorithm:
1.) Create a new project by File-> New -> Android Project name it SoundPoolExample.
2.) Add a sound file to res/raw folder and name it to sound1.
3.) Write following into main.xml:
1
2
3
4
5
6
7
8
| <?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:orientation= "vertical" android:layout_width= "fill_parent" android:layout_height= "fill_parent" > <TextView android:text= "Click on the screen to start playing" android:id= "@+id/textView1" android:layout_width= "fill_parent" android:layout_height= "fill_parent" ></TextView> </LinearLayout> |
4.) Run for output.
Steps:
1.) Create a project named SoundPoolExample and set the information as stated in the image.
Build Target: Android 4.0
Application Name: SoundPoolExample
Package Name: com. example. SoundPoolExample
Activity Name: SoundPoolExample
Min SDK Version: 8
Application Name: SoundPoolExample
Package Name: com. example. SoundPoolExample
Activity Name: SoundPoolExample
Min SDK Version: 8
2.) Open SoundPoolExample.java file and write following code there:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| package com.example.soundpoolexample; import android.app.Activity; import android.media.AudioManager; import android.media.SoundPool; import android.media.SoundPool.OnLoadCompleteListener; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; public class SoundPoolExample extends Activity implements OnTouchListener { private SoundPool soundPool; private int soundID; boolean loaded = false ; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); View view = findViewById(R.id.textView1); view.setOnTouchListener( this ); // Set the hardware buttons to control the music this .setVolumeControlStream(AudioManager.STREAM_MUSIC); // Load the sound soundPool = new SoundPool( 10 , AudioManager.STREAM_MUSIC, 0 ); soundPool.setOnLoadCompleteListener( new OnLoadCompleteListener() { @Override public void onLoadComplete(SoundPool soundPool, int sampleId, int status) { loaded = true ; } }); soundID = soundPool.load( this , R.raw.sound1, 1 ); } @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { // Getting the user sound settings AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); float actualVolume = ( float ) audioManager .getStreamVolume(AudioManager.STREAM_MUSIC); float maxVolume = ( float ) audioManager .getStreamMaxVolume(AudioManager.STREAM_MUSIC); float volume = actualVolume / maxVolume; // Is the sound loaded already? if (loaded) { soundPool.play(soundID, volume, volume, 1 , 0 , 1f); Log.e( "Test" , "Played sound" ); } } return false ; } } |
3.) Compile and build the project.
4.) Make sure you run this app on actual device to get the sound played.
Output
No comments :
Post a Comment