Android SoundPool обрезает звуковой файл

Я новичок в Android, так что будьте осторожны!

У меня есть следующий код, который должен (я думаю) просто играть "developersshort".

public constructor(Context context){
    this.context = context;
    soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC,0);
    soundPoolMap = new HashMap<Integer, Integer>();
    soundPoolMap.put(1, soundPool.load(this.context, 
        R.raw.developersshort, 1));         
}

public void run() {
    soundPool.play(soundPoolMap.get(1), 1, 1, 1, 0, 1f);
}

[Чтобы попытаться выяснить, что происходит, в настоящее время воспроизводится ремикс Стива Балмера, который постоянно кричит «разработчики»! Размер звукового файла ~90 КБ.]

Когда я запускаю свое приложение в эмуляторе и нажимаю кнопку, чтобы вызвать звук, он говорит «разработчики, разработчики, разработчики...» и т. д. и т. д., как я и ожидал.

Однако, когда я разворачиваю его на свой телефон, все слышу что-то вроде "велопа" один раз, а потом звук прекращается.

Я понятия не имею, что происходит, есть идеи?

Большое спасибо!


person James Smith-Brown    schedule 29.11.2010    source источник


Ответы (3)


Является ли ваш аудиофайл файлом .ogg? Похоже, у других форматов есть проблемы с SoundPool. Если это не сработает, вы можете протестировать его с меньшим аудиофайлом. У меня были некоторые сбои, когда мой аудиофайл превышал 60 КБ.

person Kamkat86    schedule 17.06.2011

Пробовали ли вы пересэмплировать звуковой файл???

До этого мой звуковой файл обрезался. Но я преобразовал и передискретизировал этот m4a с 44 кГц на 22 кГц, и теперь он работает без обрезания. обратитесь к этому: и снова о проблемах с памятью в SoundPool

Так что попробуй так же.

Надеюсь, это сработает для вас.

person Shreyash Mahajan    schedule 29.10.2012

60 КБ в хранилище или 2 МБ в куче, декодированные, так как чистая волна МОЖЕТ быть пределом, да. убедитесь, что вы не используете ничего дольше секунды или что-то в этом роде.

soundpool действительно нужны маленькие файлы. прочитайте страницу SDK.

person calav3ra    schedule 18.11.2011