B
BraveSentry
Neues Mitglied
- 0
Hallo zusammen,
ich benutze einen SoundPool um, naja, Sounds abzuspielen. Das tut er auch meistens. Manchmal, für mich nicht nachvollziehbar, warum, tut er das aber nicht, sondern spielt stattdessen eine Art tiefes Klicken.
Hier der Code dafür:
Das ganze wird in meiner MainActivity so integriert:
Und in onCreate dann
Zum Abspielen nutze ich dann
Das Ganze passiert sowohl im Emulator, als auch auf echten Geräten. Die Zeile
Hat jemand ne Idee, woran das liegt und was ich da machen kann?
ich benutze einen SoundPool um, naja, Sounds abzuspielen. Das tut er auch meistens. Manchmal, für mich nicht nachvollziehbar, warum, tut er das aber nicht, sondern spielt stattdessen eine Art tiefes Klicken.
Hier der Code dafür:
Code:
open class PingSoundPool(context: Context) {
open var mAttributes = AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_GAME)
.build()
open var mSoundPool = SoundPool.Builder()
.setMaxStreams(9)
.setAudioAttributes(mAttributes)
.build()
open var babping = mSoundPool.load(context, R.raw.ab830ping, 1)
open var aaping = mSoundPool.load(context, R.raw.a220ping, 1)
open var abbping = mSoundPool.load(context, R.raw.bb233ping, 1)
open var abping = mSoundPool.load(context, R.raw.b247ping, 1)
[und noch ein paar mehr]
open fun loadPings(note: Int) {
println(note.toString())
if (note == 0) {}
if(note == 1)
mSoundPool.play(acping, 2.55f, 2.55f, 1, 0, 1f)
if(note == 2)
mSoundPool.play(adbping, 2.5f, 2.5f, 1, 0, 1f)
if(note == 3)
mSoundPool.play(adping, 2.45f, 2.45f, 1, 0, 1f)
if(note == 4)
mSoundPool.play(aebping, 2.4f, 2.4f, 1, 0, 1f)
[und so weiter]
}
Das ganze wird in meiner MainActivity so integriert:
Code:
companion object {
lateinit var pingSoundPool: PingSoundPool
}
Und in onCreate dann
pingSoundPool = PingSoundPool(this)
Zum Abspielen nutze ich dann
FullscreenActivity.pingSoundPool.loadPings(note: Int)
. Das klappt auch, aber, wie gesagt, nicht immer.Das Ganze passiert sowohl im Emulator, als auch auf echten Geräten. Die Zeile
println(note.toString())
gibt mir übrigens immer die entsprechende Zahl aus, egal, ob der Sound tatsächlich spielt oder nicht. Wenn der Sound spielt, wird diese Zahl immer von folgender Nachricht gefolgt: W/AudioTrack: AUDIO_OUTPUT_FLAG_FAST denied by client; transfer 4, track 44100 Hz, output 48000 Hz
Hat jemand ne Idee, woran das liegt und was ich da machen kann?