Play sound with SoundPool

19,544

There might either be an issue with your volume control or with your sound file playing correctly: if you change the Sound() function to this what does it do? If your phone is not correctly handling the R.raw.error file format but the emulator is doing it correctly that would be VERY strange.

public void Sound(){
        AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
        float volume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
        android.util.Log.v("SOUND","["+volume+"]["+spool.play(soundID, volume, volume, 1, 0, 1f)+"]");
    };
Share:
19,544

Related videos on Youtube

lubart
Author by

lubart

Updated on June 01, 2022

Comments

  • lubart
    lubart almost 2 years

    I need to play a short sound in my application. I wrote the following code but I have no sound and strange vibration appeared on my Samsung phone. But in the same time this code works well on my android simulator. My code is:

    package com.samplers;
    
    import android.app.Activity;
    import android.media.SoundPool;
    import android.media.AudioManager;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    public class FixVibroActivity extends Activity {
        /** Called when the activity is first created. */
    
        private Button white;
        private SoundPool spool;
        private int soundID;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
            spool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
            soundID = spool.load(this, R.raw.error, 1);
    
            white = (Button)findViewById(R.id.whiteBtn);
            white.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    Sound();
                }
            });
        }
    
        public void Sound(){
            AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
            float volume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
            spool.play(soundID, volume, volume, 1, 0, 1f);
        };
    }
    

    Help me to solve this problem, please! Thank you in advance! :)

    • FeatureCreep
      FeatureCreep almost 13 years
      Can you check if logcat prints any interesting errors?