Android SoundPool сокращает звуковой файл - PullRequest
4 голосов
/ 29 ноября 2010

Я довольно новичок в 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 КБ.]

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

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

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

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

Ответы [ 3 ]

1 голос
/ 29 октября 2012

Вы пробовали с передискретизацией звукового файла ???

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

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

Надеюсь, у вас все получится.

1 голос
/ 17 июня 2011

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

0 голосов
/ 18 ноября 2011

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

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

...