Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
dodo55
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 29
1

Как реализовать бесконечный цикл в потоке?

20.10.2015, 20:10. Просмотров 376. Ответов 5
Метки нет (Все метки)

Не получается реализовать бесконечный цикл в потоке, который играет мелодию раз в секунду.

Вот код:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
MediaPlayer player;
Runnable runnable = new Runnable() {
    public void run() {
        try {
            while (true) {
                f = req(); // запрос
                if(f) loadMusic();
                TimeUnit.SECONDS.sleep(1);
            }
 
        } catch (InterruptedException e) {e.printStackTrace();}
    }
};
 
.    .     .    
Thread thread = new Thread(runnable);
thread.start();
.    .     .
 
void loadMusic() throws IOException {
    AssetFileDescriptor afd = mAssetManager.openFd("1.wav");
    MediaPlayer player = new MediaPlayer();
    player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
    player.prepare();
    player.start();
}

Проблема в том, что через 20 секунд музыка перестаёт играть, хотя Без потока он работает в среднем 20 минут.
SoundPool пробовал - не подходит. Длительность мелодии от 5 до 26 секунд. Он примерно через 20 секунд замолкает на полуслове.
req(); не на что не влияет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2015, 20:10
Ответы с готовыми решениями:

Как получить значение String из UI потока в потоке AsyncTask?
Есть 4 шт. EditText. Нужно получить их значения в потоке AsyncTask. Вот весь...

Как отменить выполнение кода в сервисе, который запущен в отдельном потоке?
Здравствуйте! Есть код класса, наследующего Service public int...

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

Как реализовать бесконечный цикл While, но чтобы этот цикл не грузил процессор?
Допустим есть цикл: while (1) { ... } Как сделать так, чтобы...

Как реализовать бесконечный цикл?
Как реализовать вот такой бессконечный цикл суммы? \sum_{n=0}^{\infty } Я...

5
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
22.10.2015, 08:28 2
SoundPool точно не подходит, он для множества коротких файлов был придуман.
а вот почему Ваш поток рубят - это вопрос. этот код из основного приложения или сервис?
0
Valakin
432 / 98 / 15
Регистрация: 21.02.2015
Сообщений: 747
22.10.2015, 09:45 3
возможно ты постоянно создаешь player
что в принципе не правильно
или уничтожай его или создавай один раз
0
dodo55
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 29
22.10.2015, 15:49  [ТС] 4
Я тоже так подумал... создал, но не чего не поменялось. Этот код для Activity. Пытался переписать код для Servis, но в результате приложение вылетает, через 15 секунд работы.
0
Valakin
432 / 98 / 15
Регистрация: 21.02.2015
Сообщений: 747
22.10.2015, 16:06 5
Цитата Сообщение от dodo55 Посмотреть сообщение
хотя Без потока он работает в среднем 20 минут
а потом что? приложение падает или перестает звучать wav?
0
dodo55
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 29
22.10.2015, 19:43  [ТС] 6
падает
0
22.10.2015, 19:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2015, 19:43

Как правильно реализовать бесконечный цикл?
Господа, такой вопрос. Я совсем ещё нуб в шарпе, да и в программировании...

Бесконечный цикл в потоке, StackOverflowException
Мне нужна рекурсия в отдельном потоке, перебирающая делегаты и вызывающая их в...

бесконечный цикл в отдельном потоке
Здравствуйте! Помогите пожалуйста решить проблему. Есть метод relayStatus....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru