Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 424
#1

Управление громкостью из сервиса - Программирование Android

08.02.2014, 17:05. Просмотров 1347. Ответов 7
Метки нет (Все метки)

в сервисе воспроизводится звук с некоторыми промежутками, получается клавиши громкости управляют громкостью звука только при воспроизведении. Как сделать, чтобы они действовали постоянно.
Что я думаю - надо передать контекст активности из которой запускается сервис в сам сервис, а там в методе onCreate вызвать setVolumeControlStream(AudioManager.STREAM_MUSIS)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 17:05     Управление громкостью из сервиса
Посмотрите здесь:

Завершение сервиса - Программирование Android
вот метод завершающий сервис в основной активности: public void onClickStop(View v) { stopService(new Intent(this,...

Разбудить телефон из сервиса - Программирование Android
Плиз, помогите. Как из сервиса (IntenetService) разбудить телефон на время выполнения какой-либо задачи (в onHandleIntent)? В чем...

Создание неубиваемого сервиса - Программирование Android
А как можно создать неубиваемый сервис кроме метода startforaground()? Может какой то флаг можно передать в startCommand чтобы он вообще не...

Два сервиса и Notification - Программирование Android
Друзья, в приложении есть сервис, в нем формируется уведомление, в котором есть кнопка с PendingIntent, вызывающая другой сервис, в котором...

Запуск и останов сервиса - Программирование Android
Здравствуйте, поздравляйте с почином, первое сообщение) Вопрос такой: пишу приложение с сервисом, который должен запускаться при старте...

Подскажите с работой сервиса в андроид - Программирование Android
вообщем вот у меня есть сервис: import java.util.ArrayList; import java.util.List; import org.apache.http.NameValuePair; ...

Обращение из сервиса к основному (UI) потоку - Программирование Android
как сделать так чтобы из сервиса можно было обращаться к основному потоку в котором находится UI ? изменять UI возможно ли это и если...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3117 / 1919 / 208
Регистрация: 13.01.2012
Сообщений: 7,349
09.02.2014, 09:35     Управление громкостью из сервиса #2
а зачем сервису контекст вызывающей активности? просто вызов setVolumeControlStream в onCreate не помогает?
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 424
09.02.2014, 13:26  [ТС]     Управление громкостью из сервиса #3
vxg,
не помогает, так как у меня окно сворачивается, а сервис продолжает работать, контекст теряется, а для сервиса подобного метода нет
vxg
Модератор
3117 / 1919 / 208
Регистрация: 13.01.2012
Сообщений: 7,349
09.02.2014, 13:31     Управление громкостью из сервиса #4
Цитата Сообщение от ASDFD12 Посмотреть сообщение
Что я думаю - надо передать контекст активности из которой запускается сервис в сам сервис, а там в методе onCreate вызвать setVolumeControlStream(AudioManager.STREAM_MUSIS)
то есть фраза подразумевает что вы вызовете onCreate активности из сервиса? разве такое возможно?
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 424
09.02.2014, 13:42  [ТС]     Управление громкостью из сервиса #5
нет. Я вызываю сервис из активности так
Java
1
2
Intent intent = new Intent (this, MyService.class);
startService(intent);
а подразумевал каким то образом в интент положить и ссылку на контекст, а потом в методе onCreate() сервиса вызвать setVolumeControlStream, но так как при сворачивании окна контекст пропадает, то это неудачная идея.
Таким образом меня интересует способ, которым можно управлять громкостью, да и в сервисе у меня воспроизведение идет через mediaPlayer
vxg
Модератор
3117 / 1919 / 208
Регистрация: 13.01.2012
Сообщений: 7,349
09.02.2014, 13:57     Управление громкостью из сервиса #6
наверное я все таки не очень понимаю в сервисах. в сервисе есть onCreate? вы в нем вызываете setVolumeControlStream? и это действует только пока играет трек?
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 424
09.02.2014, 14:13  [ТС]     Управление громкостью из сервиса #7
да, в сервисе есть метод onCreate(). Я пока что ничего не решил и ничего не вызываю. Пока что приложение работает так. 1)запускаю активити 2) запускаю сервис из активити 3)сворачиваю активити
4) сервис работает независимо.
Допустим сервис работает так :
1)0- 10 сек - ничего не делает
2)10-15сек - воспроизводит музыку
3)15-25 сек - ничего не делает
и т д.
Итак , сервис запустился - на 10-ой сек - звучит музыка со средней громкостью, пока она воспроизводится - кнопки громкости управляют даным потоком воспроизведения - я могу за эти 5 сек увеличить громкость до максимума, и она воспроизводится на максимуме
далее.. идет 15-25 сек - я уменьшаю громкость - но эта громкость уже не связана с моим потоком - допустим я ставлю в этот момент громкость ноль
25-30 сек - запускается музыка из сервиса - и она играет на полной громкости.
Вопрос в том, чтобы я мог управлять громкость моего звука в лубой промежуток времени))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 16:04     Управление громкостью из сервиса
Еще ссылки по теме:

Два сервиса в одном приложении - Программирование Android
В программе был один сервис - перезапускался если смахнуть со шторки и если перезагрузить телефон. Все было прекрасно, но решил добавить...

Исходники сервиса с сокет-клиентом - Программирование Android
Нужно написать подобное и не хочу писать все с нуля... Изобретать велосипед... Может подобное уже есть в опенсорсах? Нужно: 1)...

Небольшая статья об использовании сервиса - Программирование Android
В голову пришла мысль написать небольшую статью по использованию сервисов в Android. Представленный мной план ниже - это не мое...

Не работает автозагрузка сервиса AndroidStudio - Программирование Android
Делаю пример из урока по Android Studio. Сервис работает только до перезагрузки. Поможите, пожалуйста тугому) Код MyService.java ...

Запись в память телефона из сервиса - Программирование Android
Нужно через сервис сохранить файл в память телефона в директорию. Делаю так: if...


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

Или воспользуйтесь поиском по форуму:
vxg
Модератор
3117 / 1919 / 208
Регистрация: 13.01.2012
Сообщений: 7,349
09.02.2014, 16:04     Управление громкостью из сервиса #8
по своей наивности полагал, что setVolumeControlStream просто говорит системе громкость какого потока будет изменяться кнопками изменения громкости и одна громкость разделяется всеми приложениями. и эту текущую громкость мы можем получить. делал так
в OnCreate
Java
1
2
3
setVolumeControlStream(AudioManager.STREAM_MUSIC);
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
myTrackId = soundPool.load(this, getResources().getIdentifier("myTrack", "raw", getPackageName()), 1);
для воспроизведения
Java
1
2
3
4
5
6
    private void play(int idx) {
        AudioManager audioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
        float volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
        volume /= audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        soundPool.play(tracks[idx], volume, volume, 1, 0, 1);
    }
может в сервисе или с плеером так нельзя или у разных приложений свои громкости... не знаю
Yandex
Объявления
09.02.2014, 16:04     Управление громкостью из сервиса
Ответ Создать тему
Опции темы

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