0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 45
|
|
1 | |
Один MediaPlayer для нескольких файлов09.08.2016, 18:22. Показов 698. Ответов 18
Метки нет (Все метки)
В приложении имеется несколько кнопок. По нажатию на каждую из них проигрывается MediaPlayer со своим звуком, то есть для каждой кнопки - свой звук. Можно ли как-то упростить задачу и использовать один MediaPlayer, в который по нажатию кнопки будет загружаться звук?
0
|
09.08.2016, 18:22 | |
Ответы с готовыми решениями:
18
Объединение нескольких файлов в один Объединение нескольких файлов в один Объединение нескольких файлов в один Объединение нескольких файлов в один |
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
10.08.2016, 08:30 | 2 |
turok09, давайте плееру разный звук, если звуки малые можно вообще саундпулл использовать
0
|
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
|
|
10.08.2016, 08:51 | 3 |
в чем сложность?
можно так - записать один общий файл звуковой и воспроизводить нужные интервалы
0
|
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 45
|
|
10.08.2016, 22:28 [ТС] | 4 |
Как именно давать одному плееру разный звук?
0
|
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
|
|
11.08.2016, 01:36 | 5 |
turok09, как тут уже сказали, тебе нужен SoundPool, а не MediaPlayer.
0
|
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|||||||||||
11.08.2016, 09:06 | 6 | ||||||||||
да хоть через пересоздание
0
|
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 45
|
||||||
11.08.2016, 11:20 [ТС] | 7 | |||||
Попробовал с mediaPlayer = MediaPlayer.create(this, R.raw.new_sound), получилось, но после закрытия этого экрана приложение останавливается. Не знаю, в чем проблема, до этого все работало. Думаю на метод onDestroy
0
|
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.08.2016, 11:27 | 8 |
turok09, мне почему то кажется что неосвобождение плеера перед проигрыванием нового звука может привести к чему то нехорошему. +такое обилие звуков все таки тянет на SoundPool
0
|
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
|
|
11.08.2016, 11:40 | 9 |
super.onDestroy(); первым идет
0
|
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 45
|
|
11.08.2016, 14:31 [ТС] | 10 |
vxg, то есть надо после каждой загрузки звука и его проигрывания писать flats.release()?
0
|
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.08.2016, 15:01 | 11 |
turok09, прямо "надо" я вам не скажу так как таким способом плеер не использовал
0
|
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 45
|
|||||||||||
11.08.2016, 17:28 [ТС] | 12 | ||||||||||
Нашел причину остановки приложения. Когда пишешь так, то вылетает:
0
|
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.08.2016, 17:47 | 13 |
turok09, после супердестрой пробовали очищать?
0
|
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 45
|
|
11.08.2016, 18:02 [ТС] | 14 |
vxg, да
Тут еще одна проблема: способ с загрузкой одному плееру разного звука влечет за собой то, что можно хоть сколько раз нажимать на кнопку и звук будет повторяться, как в SoundPool. А нужно все-таки, чтобы нажал на кнопку несколько раз и звук проигрывался только один раз, пока не закончится
0
|
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.08.2016, 18:06 | 15 |
turok09, ничто не мешает при нажатии проверять что нужный звук уже звучит
0
|
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 45
|
||||||
11.08.2016, 18:07 [ТС] | 16 | |||||
vxg, писать типа что-то этого? А дальше как?
0
|
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.08.2016, 18:13 | 17 |
turok09, как что? Узнать что плеер играет именно тот самый звук? Ну вы же его заставили играть-переменную какую нибудь завести можно в которой сохраняется ид если достать его обратно из плеера не выходит. И если это все играет просто ничего не делать.
0
|
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 45
|
|
11.08.2016, 20:22 [ТС] | 18 |
vxg, а с release() что делать, который вызывает остановку приложения?
0
|
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.08.2016, 23:47 | 19 |
turok09, это ненормально. Причина может быть в том что во время исполнения дестрой релиз уже должен был быть вызван например при паузе
0
|
11.08.2016, 23:47 | |
11.08.2016, 23:47 | |
Помогаю со студенческими работами здесь
19
Соединение нескольких файлов в один Сведение нескольких PDF файлов в один Объединение нескольких dwg-файлов в один Склейка нескольких текстовых файлов в один Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |