Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
1

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

21.02.2014, 11:23. Просмотров 951. Ответов 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);


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

Исполнение кода элемента из меню
Добрый день. Настиг вот такой вопрос: как можно сделать исполнение кода...

Исполнение кода, написанного в текстовом файле (динамическая компиляция кода)
к примеру есть у меня форма а на ней кнопка, можно ли присваивать код кнопке с...

Оптимизация одинаковых строк кода в разных представлениях
В шести различных представлениях необходимо выполнять одно и тоже действие,...

Поменять цвет Checkbox в зависимости от ситуации
Доброго времени суток! У меня такая проблема. Есть форма бронирования....

Динамическое создание группы контроллов на форме в зависимости от ситуации
Добрый день. Возникла такая интересная задача: есть некий набор сложных...

14
dan41k
]:->
98 / 92 / 19
Регистрация: 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);
   }
1
verylazy
Заблокирован
21.02.2014, 12:18 3
Aud.start() ничего не вернет
первое что пришло в голову это сделать что-то типа boolean isStarted;
и присваивать true сразу после строки Aud.start();
ну а дальше по коду уже IF-ами разруливать
0
dan41k
]:->
98 / 92 / 19
Регистрация: 12.11.2013
Сообщений: 398
21.02.2014, 12:30 4
так может у него метод start() возвращает boolean)

Добавлено через 46 секунд
Или это не его собственный метод?)
0
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"

я думал может есть какой-нибудь другой способ
0
verylazy
Заблокирован
21.02.2014, 12:44 6
Во первых я написал другой вариант, как можно сделать.
Еще можно проверять играет ли MediaPlayer или нет http://developer.android.com/referen...sPlaying%28%29
Вот метод isPlaying() можно было ли в if-е использовать, но мне кажется тут все печальнее и история будет иметь продолжение.
0
dan41k
]:->
98 / 92 / 19
Регистрация: 12.11.2013
Сообщений: 398
21.02.2014, 12:46 7
Цитата Сообщение от tree00 Посмотреть сообщение
я думал может есть какой-нибудь другой способ
тогда почитайте подробно то, что написал verylazy. Ваш метод старт не возвращает boolean значение.
0
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);
    }
только результата нет, всем спасибо.
0
verylazy
Заблокирован
21.02.2014, 13:01 9
Цитата Сообщение от tree00 Посмотреть сообщение
только результата нет
а это потому, что надо не просто бездумно копировать код и вставлять себе в проект, а думать
Цитата Сообщение от tree00 Посмотреть сообщение
всем спасибо.
это как раз тот случай, когда можно ответить - да не за что, ибо реально не за что
0
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
21.02.2014, 13:06  [ТС] 10
Не в этом дело, просто мне надо чтобы при запуске приложения звук становился на максимум а при выходе принимал прежнее значение.
На максимум он становится а вот прежнее значение не принимает.

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

Не по теме:

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

0
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
21.02.2014, 13:34  [ТС] 12
я же сказал if else знаю только это не работает, просто думал может есть чтонибудь другое на это похожее читать надо внимательнее
0
Vladimirys
312 / 209 / 27
Регистрация: 16.01.2010
Сообщений: 610
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) можно будет прикрутить
1
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);
в паблике то приложение вообще не запускается

Но всеравно спасибо
0
verylazy
Заблокирован
21.02.2014, 16:35 15
зачем тут вообще if-else в таком случае?
в onCreate считываем текущее значение громкости и сохраняем его в глобальной переменной, где-то там
Java
1
2
3
public class MyCoolBestActivity {
int currentVolume;
}
после этого можно делать с громкостью что нужно, а в onPause просто восстановить его значение из глобальной переменной, вариант?
0
21.02.2014, 16:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 16:35

Повторить исполнение кода
Разработал такой супер-код, подскажите, как сделать, чтобы после последнего...

Как в зависимости от ситуации присвоить переменной методы MoveFirst и MoveLast?
Как в зависимости от ситуации присвоить переменной методы MoveFirst и MoveLast,...

Как остановить исполнение кода?
Какие способы есть остановить код на секунду что пользаватель успел посмотреть...


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

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

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