Kein Sound

  • 0 Antworten
  • Neuester Beitrag
Diskutiere Kein Sound im Android App Entwicklung im Bereich Betriebssysteme & Apps.
T

themerx

Neues Mitglied
Hallo liebe Leute,

ich beschäftige mich seit ein paar Tagen mit dem Android SDK und möchte mir gerade eine Klasse schreiben, die Sounds spielen soll. Leider bekomme ich keinen Sound. Woran liegt es? Hier mal die Soundklasse.

PHP:
public final class SoundManager implements IDisposeable
{
    private static SoundManager instance;
    
    private final int MAX_VOICES = 5;
    private SoundPool soundPool;
    private AudioManager audioManager;
    private ArrayList<SoundData> soundList;
    private int amount = 0;
    
    public SoundManager()
    {
        initialize();
    }
    
    private void initialize()
    {
        soundList = new ArrayList<SoundData>();
        
        soundPool = new SoundPool(MAX_VOICES, AudioManager.STREAM_MUSIC, 0);
        
        audioManager = (AudioManager)GameDriver.getInstance().getSystemService(Context.AUDIO_SERVICE);
        GameDriver.getInstance().setVolumeControlStream(AudioManager.STREAM_MUSIC);

    }
    
    public static SoundManager i()
    {
        if (instance == null)
        {
            instance = new SoundManager();
            Log.d("Status", "** instance created successfully!");
        }
        else
        {
            Log.d("Status", "** instance has already been created!");
        }
        
        return instance;
    }
    
    public void addSound(String path, String name, float volume)
    {
        try
        {
            AssetFileDescriptor descriptor = GameDriver.getInstance().getAssets().openFd( path );
            soundList.add(new SoundData(soundPool.load( descriptor, 1 ), name, volume));
            amount++;
        }
        catch( Exception ex )
        {
            Log.d( "Sound Sample", "** couldn't load sound '" + name + "'" );
            throw new RuntimeException( ex );
        }
    }
    
    public SoundData getSoundData(String name)
    {
        for (int i = 0; i < amount; i++)
        {
            if (soundList.get(i).ID_String == name)
                return soundList.get(i);
        }
        Log.e("Error", "'" + name + "' does not exist!");
        return null;
    }
    
    public void playSound(String name, int loop)
    {
        SoundData data = getSoundData(name);
        Log.d("Status" , "ID: " + data.ID_Num + ", " + data.ID_String);
        int volume = audioManager.getStreamVolume( AudioManager.STREAM_MUSIC ); // * data.volume;
        soundPool.play(data.ID_Num, volume, volume, 1, 0, 1);
    }
    
    public void dispose()
    {
        
    }
}
PHP:
public class SoundData 
{
    public int ID_Num;
    public String ID_String;
    public float volume;
    
    public SoundData(int ID_Num, String ID_String, float volume)
    {
        this.ID_Num = ID_Num;
        this.ID_String = ID_String;
        this.volume = volume;
    }
}
Von Außen führe ich dann folgende Befehle aus.

PHP:
SoundManager.i().addSound("sounds/synth_01.mp3", "synth", 1.0f);

// nach einer Wartezeit von ca 2 Sekunden dann...
SoundManager.i().playSound("synth", 2);

Wäre toll, wenn mir jemand verraten könnte, wo der Fehler liegt. Der Debugger meldet keine Fehler, aber Sound kommt halt nicht.

MFG T