Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

21.02.2014, 11:23. Просмотров 928. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Исполнение разных строк кода в зависимости от ситуации (Программирование Android):

Исполнение кода элемента из меню - Программирование Android
Добрый день. Настиг вот такой вопрос: как можно сделать исполнение кода элемента из меню Activity (там, где три точки нарисованы)?...

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

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

Поменять цвет Checkbox в зависимости от ситуации - JavaScript
Доброго времени суток! У меня такая проблема. Есть форма бронирования. Элементы времени - это чекбоксы. (фото прилагаю) На данный...

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

Повторить исполнение кода - C++
Разработал такой супер-код, подскажите, как сделать, чтобы после последнего "mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); " сделать, чтобы...

14
dan41k
]:->
98 / 92 / 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);
   }
1
verylazy
Заблокирован
21.02.2014, 12:18 #3
Aud.start() ничего не вернет
первое что пришло в голову это сделать что-то типа boolean isStarted;
и присваивать true сразу после строки Aud.start();
ну а дальше по коду уже IF-ами разруливать
0
dan41k
]:->
98 / 92 / 13
Регистрация: 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 / 13
Регистрация: 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 / 26
Регистрация: 16.01.2010
Сообщений: 608
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 16:35
Привет! Вот еще темы с ответами:

Как в зависимости от ситуации присвоить переменной методы MoveFirst и MoveLast? - Visual Basic
Как в зависимости от ситуации присвоить переменной методы MoveFirst и MoveLast, чтобы использовать rs.MoveFirst или rs.MoveLast. Как...

Как остановить исполнение кода? - C#
Какие способы есть остановить код на секунду что пользаватель успел посмотреть результат(на пример в игре,как он нажал на кнопку что увидел...

Исполнение динамического кода в 1с77 - 1С
Есть ли в 1с77 возможность исполнения динамического кода, на подобие функции eval() в JavaScript?

Исполнение кода из текстовой переменной. - C++
Есть текстовая переменная. (конкретно массив TCHAR) В ней находится кусок кода. Можно ли отправить этот код на выполнение, не занимаясь...


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

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

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