В настоящее время я пытаюсь воспроизвести звуки в своем приложении для Android с помощью SoundPool API. Воспроизведение звука не проблема. Теперь я хочу остановить звук и перезапустить его позже с самого начала. Но когда я вызываю функцию остановки, а затем play(), звук не воспроизводится. Вот код:
загрузить звук:
soundId = soundPool.load(context, fileId, 1);
воспроизвести звук:
streamId = soundPool.play(soundId, 1.0f, 1.0f, 1, -1, 1);
остановить звук:
soundPool.stop(streamId);
Я также пытался снова загрузить звук, прежде чем воспроизвести его во второй раз, но это не помогло.
Когда я использую паузу/возобновление, звук воспроизводится с того места, где он был остановлен (но я хочу всегда с самого начала).
Любая помощь будет оценена
РЕДАКТИРОВАТЬ:
Я только что понял кое-что странное. Когда я использую soundpool.stop(), он работает каждый второй раз, когда я вызываю soundpool.play(). Таким образом, первый вызов play() воспроизводит звук, второй нет, 3-й, 5-й, 7-й вызов воспроизводит звук. Когда я использую soundpool.pause(), а затем play(), он работает каждый третий раз. Итак, 1-й, 4-й, 7-й... вызов play() запускает звук.
Это ошибка? Или я неправильно его использую?