Задать вопрос
@exe2k

Циклическое аудио на Андроид без прерывания (gapeless), возможно ли?

Чёрт дёрнул меня закрыть гештальт и написать приложение под андроид))) Простите, если вопрос нубский, но сутки чтения stackoverflow ничем не помогли((

Задача сделать зацикленный звук (loop) без прерывания. Длительность файла около минуты, вес 1мб. Файл изменять нельзя, можно менять формат(mp3\ogg\etc.) Если я использую MediaPlayer, то при след. цикле он на пол секунды прерывается как бы перезагружая файл. Пробовал через SoundPool, но он вообще ничего не играет...

SoundPool soundPool;
    private final int channels = 16;

    this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
        AudioAttributes attributes = new AudioAttributes.Builder()
                .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
                .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                .build();
        soundPool = new SoundPool.Builder()
                .setMaxStreams(channels)
                .setAudioAttributes(attributes)
                .build();

        int snd = soundPool.load(this,R.raw.car_engine,1);
        soundPool.play(snd,1,1,1,1,1);
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@exe2k Автор вопроса
Пришел к выводу, что на системе Андроид, что на JS весьма распространенная проблема. Так как делаю приложение на основе WebView - реализовал на JS, просто пустил параллельно еще одну копию этого же звука, отслеживаю воспроизведение и под конец запускаю его копию. ну и чередую. Звук сделал с плавным затуханием в конце и в начале, так что подогнав тайминг в целом получилось приемлимо. С AudioContext заморачиваться не стал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы