Ранее я работал с приложением, и у меня была похожая проблема, и я смог ее исправить, за исключением того, что я не передавал аудио.Надеюсь, что это может помочь, вам нужно будет изменить его для своих целей:
import android.media.AudioManager;
import android.media.SoundPool;
import android.media.SoundPool.OnLoadCompleteListener;
import android.util.SparseIntArray;
Создание SoundPool и SparseIntArray Я использую звуковые файлы здесь, вам придется изменить эту часть.
private static SoundPool soundPool;
private static SparseIntArray soundPoolMap;
public static final int S1 = R.raw.good_1, S2 = R.raw.bad_1,
P1 = R.raw.power_1,
P2 = R.raw.power_2,
P3 = R.raw.power_3,
P4 = R.raw.power_4,
P5 = R.raw.power_5,
WIN = R.raw.round_win;
Инициализируйте свои звуки и добавьте их на карту
public static void initSounds(Context context)
{
soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 100);
soundPoolMap = new SparseIntArray(8);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
loaded = true;
}
});
soundPoolMap.put(S1, soundPool.load(context, R.raw.good_1, 1));
soundPoolMap.put(S2, soundPool.load(context, R.raw.bad_1, 2));
soundPoolMap.put(P1, soundPool.load(context, R.raw.power_1, 3));
soundPoolMap.put(P2, soundPool.load(context, R.raw.power_2, 4));
soundPoolMap.put(P3, soundPool.load(context, R.raw.power_3, 5));
soundPoolMap.put(P4, soundPool.load(context, R.raw.power_4, 6));
soundPoolMap.put(P5, soundPool.load(context, R.raw.power_5, 7));
soundPoolMap.put(WIN, soundPool.load(context, R.raw.round_win, 8));
}
Воспроизведите звук
public static void playSound(Context context, int soundID)
{
float volume = 1;
if(soundPool == null || soundPoolMap == null)
{
initSounds(context);
}
soundPool.play(soundPoolMap.get(soundID), volume, volume, 1, 0, 1f);
}
Пример: playSound (this, P1);
Что происходит, я использую класс SoundPool , а затем отображаю аудиопотоки с помощью SparseIntArray