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

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

Войти
Регистрация
Восстановить пароль
 
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
#1

Исполнение разных строк кода в зависимости от ситуации - Android

21.02.2014, 11:23. Просмотров 853. Ответов 14
Метки нет (Все метки)

есть такой код
Java
1
2
3
4
5
6
7
8
9
10
11
Aud = MediaPlayer.create(this, R.raw.muz);
    Aud.setLooping(true);
    Aud.start();
    
    AudioManager mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
    int originalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
  
    mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
    
    
    mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, originalVolume, 0);
надо чтобы было так если
Aud.start()
то выполняется это
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
иначе
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, originalVolume, 0);


понимаю вопрос очень легкий но почемуто у меня ничего не получается ошибки разные выдает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 11:23     Исполнение разных строк кода в зависимости от ситуации
Посмотрите здесь:

Adobe Flash CS 5.5, ActionScript 3.0 - Создание кода для разных фреймов Android
Ширина TextView в зависимости от наполнения его текстом Android
Исполнение кода элемента из меню Android
Масштабирование картинки в зависимости от разрешения экрана Android
Добавлене View элементов в ListView в зависимости от текста Android
Android Orientation в зависимости от пропорций экрана
Android Изменять изображение в зависимости от количества нажатий
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dan41k
]:->
97 / 91 / 13
Регистрация: 12.11.2013
Сообщений: 398
21.02.2014, 12:11     Исполнение разных строк кода в зависимости от ситуации #2
Java
1
2
3
4
5
if(Aud.start()) {
     mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
} else {
      mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, originalVolume, 0);
   }
verylazy
Заблокирован
21.02.2014, 12:18     Исполнение разных строк кода в зависимости от ситуации #3
Aud.start() ничего не вернет
первое что пришло в голову это сделать что-то типа boolean isStarted;
и присваивать true сразу после строки Aud.start();
ну а дальше по коду уже IF-ами разруливать
dan41k
]:->
97 / 91 / 13
Регистрация: 12.11.2013
Сообщений: 398
21.02.2014, 12:30     Исполнение разных строк кода в зависимости от ситуации #4
так может у него метод start() возвращает boolean)

Добавлено через 46 секунд
Или это не его собственный метод?)
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
21.02.2014, 12:36  [ТС]     Исполнение разных строк кода в зависимости от ситуации #5
в том то и дело что этот код
Java
1
2
3
4
5
if(Aud.start()) {
     mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
} else {
      mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, originalVolume, 0);
   }
я уже разумеется делал, но выдает ошибку "Type mismatch: cannot convert from void to boolean"

я думал может есть какой-нибудь другой способ
verylazy
Заблокирован
21.02.2014, 12:44     Исполнение разных строк кода в зависимости от ситуации #6
Во первых я написал другой вариант, как можно сделать.
Еще можно проверять играет ли MediaPlayer или нет http://developer.android.com/referen...sPlaying%28%29
Вот метод isPlaying() можно было ли в if-е использовать, но мне кажется тут все печальнее и история будет иметь продолжение.
dan41k
]:->
97 / 91 / 13
Регистрация: 12.11.2013
Сообщений: 398
21.02.2014, 12:46     Исполнение разных строк кода в зависимости от ситуации #7
Цитата Сообщение от tree00 Посмотреть сообщение
я думал может есть какой-нибудь другой способ
тогда почитайте подробно то, что написал verylazy. Ваш метод старт не возвращает boolean значение.
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
21.02.2014, 12:58  [ТС]     Исполнение разных строк кода в зависимости от ситуации #8
все сделал
Java
1
2
3
4
5
6
7
8
9
AudioManager mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
    int originalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
    if(Aud.isPlaying ()){
    mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
    }
    else
    {
    mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, originalVolume, 0);
    }
только результата нет, всем спасибо.
verylazy
Заблокирован
21.02.2014, 13:01     Исполнение разных строк кода в зависимости от ситуации #9
Цитата Сообщение от tree00 Посмотреть сообщение
только результата нет
а это потому, что надо не просто бездумно копировать код и вставлять себе в проект, а думать
Цитата Сообщение от tree00 Посмотреть сообщение
всем спасибо.
это как раз тот случай, когда можно ответить - да не за что, ибо реально не за что
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
21.02.2014, 13:06  [ТС]     Исполнение разных строк кода в зависимости от ситуации #10
Не в этом дело, просто мне надо чтобы при запуске приложения звук становился на максимум а при выходе принимал прежнее значение.
На максимум он становится а вот прежнее значение не принимает.

Это я и имел в виду когда говорил что не помогло.
dan41k
21.02.2014, 13:27
  #11

Не по теме:

мне интересно, как вы написали Музыкальный плеер, не зная даже if...else

tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
21.02.2014, 13:34  [ТС]     Исполнение разных строк кода в зависимости от ситуации #12
я же сказал if else знаю только это не работает, просто думал может есть чтонибудь другое на это похожее читать надо внимательнее
Vladimirys
298 / 195 / 22
Регистрация: 16.01.2010
Сообщений: 551
21.02.2014, 15:23     Исполнение разных строк кода в зависимости от ситуации #13
Можно использовать свой метод, в который добавить "флажок". Например переменную
Java
1
int play;
Java
1
2
3
4
5
private void moyMetod () throws Exception{
тут создаём плеер, запускаем
  Aud.start()
   play = 1;
}
И потом уже, проверим чему равна переменная play (1 или 0) и на основании этих данных будем танцевать с громкостью. Хотя могут быть нюансы, нужно смотреть. Может и булку (boolean) можно будет прикрутить
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
21.02.2014, 15:35  [ТС]     Исполнение разных строк кода в зависимости от ситуации #14
спасибо за помощь, только у меня проигрывание зацикленно и проверять play бессмысленно, востановление дефолтного значения звука надо производить в
Java
1
2
3
4
5
@Override
  public void onPause(){
    finish();
    super.onPause();
    }
вот в этом и имется загвоздка, ведь если я
Java
1
 int originalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
пропишу в onPause то он примет значение максимум так как в onCreate прописан
Java
1
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
а если попробывать задать
Java
1
int originalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
в паблике то приложение вообще не запускается

Но всеравно спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 16:35     Исполнение разных строк кода в зависимости от ситуации
Еще ссылки по теме:

Исполнение скрипта в android приложении Android
Android Ситуации пересоздания активити
Отображение в зависимости от устройства Android
Вывод уведомления в зависимости от условия Android
Android Gradle в studio не подключает зависимости

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

Или воспользуйтесь поиском по форуму:
verylazy
Заблокирован
21.02.2014, 16:35     Исполнение разных строк кода в зависимости от ситуации #15
зачем тут вообще if-else в таком случае?
в onCreate считываем текущее значение громкости и сохраняем его в глобальной переменной, где-то там
Java
1
2
3
public class MyCoolBestActivity {
int currentVolume;
}
после этого можно делать с громкостью что нужно, а в onPause просто восстановить его значение из глобальной переменной, вариант?
Yandex
Объявления
21.02.2014, 16:35     Исполнение разных строк кода в зависимости от ситуации
Ответ Создать тему
Опции темы

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