The following code shows how to Play ogg file.
Main layout activity_main.xml file
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button_beep1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Play Beep 1" /> <Button android:id="@+id/button_beep2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Play Beep 2" /> <Button android:id="@+id/button_beep3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Play Beep 3" /> </LinearLayout>
Java code
package com.java2s.myapplication3.app; /*from w w w. j a v a2 s .c om*/ import java.io.IOException; import android.app.Activity; import android.content.res.AssetManager; import android.media.AudioManager; import android.media.SoundPool; import android.os.Bundle; import android.util.SparseIntArray; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity implements View.OnClickListener { private AudioManager mAudioManager; private SoundPool mSoundPool; private SparseIntArray mSoundMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE); //Set up pool to only play one sound at a time over the // standard speaker output. mSoundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); findViewById(R.id.button_beep1).setOnClickListener(this); findViewById(R.id.button_beep2).setOnClickListener(this); findViewById(R.id.button_beep3).setOnClickListener(this); //Load each sound and save their streamId into a map mSoundMap = new SparseIntArray(); AssetManager manager = getAssets(); try { int streamId; streamId = mSoundPool.load(manager.openFd("Beep1.ogg"), 1); mSoundMap.put(R.id.button_beep1, streamId); streamId = mSoundPool.load(manager.openFd("Beep2.ogg"), 1); mSoundMap.put(R.id.button_beep2, streamId); streamId = mSoundPool.load(manager.openFd("Beep3.ogg"), 1); mSoundMap.put(R.id.button_beep3, streamId); } catch (IOException e) { Toast.makeText(this, "Error Loading Sound Effects", Toast.LENGTH_SHORT).show(); } } @Override public void onDestroy() { super.onDestroy(); mSoundPool.release(); mSoundPool = null; } @Override public void onClick(View v) { int streamId = mSoundMap.get(v.getId()); if (streamId > 0) { float streamVolumeCurrent = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); float streamVolumeMax = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); float volume = streamVolumeCurrent / streamVolumeMax; mSoundPool.play(streamId, volume, volume, 1, 0, 1.0f); } } }