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

Static MediaPlayer - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Включение wifi роутера http://www.cyberforum.ru/android-dev/thread1667315.html
Доброго времени суток всем. На android никогда ничего не писал, но нужно срочно сделать небольшую программу: Включение wifi роутера по времени, значок wifi роутера не показан вверху(не извещает что он включён) Вроде все)) С чего начать?Нюансы для написание на android? Реально ли? С программированием знаком, но как бы не очень прям хотелось лесть во все дебри sdk'шек и всяких мануалов, так...
Программирование Android Что будет в случае пересоздания активити Вот у меня есть активити и сервис. В активити есть, к примеру TextView и сервис производит какие то вычисления и передает результат в активити, активити отображает результат в TextView. В активити в onCreate создается ресивер и интент фильтр для перехвата сообщений от сервиса. Но вот ситуация: что будет если в момент передачи данных от сервиса к активити пользователь перевернет телефон и... http://www.cyberforum.ru/android-dev/thread1667311.html
SIP СофтФон с нуля Программирование Android
Здравствуйте дорогие друзья. Есть задачка создание своего СофтФона. Как писать, с чего начать, представлении не имею. Посоветуйте мне пожалуйста по какому пути мне идти. какие литеры почитать. Если кто знает, опишите пжл как вообще работают софтфоны. Благодарен за любую помощь.
Функция возвращает false Программирование Android
Смотрю через Debug, после return true в области try переходит на return false в catch (при этом пропуская ERROR = false;ERROR_TEXT = e.getMessage();). Почему так? Ведь метод должен прекратить работу еще на первом return true;
Программирование Android Замена изображения в imageview по нажатию http://www.cyberforum.ru/android-dev/thread1667243.html
Всем привет! Такой вопрос: Нажимаю на imagevie и хочу что бы менялось изображение. Имеется 3 лаяута в которых есть такой код: <ImageView android:layout_width="60dp" android:layout_height="60dp" android:layout_marginRight="10dp" android:layout_marginBottom="10dp" android:id="@+id/settings_sound" ...
Программирование Android Обработка длительного нажатия В игре нужно перемещать предмет тогда, когда палец на экране: пальцем касаюсь экрана (не важно, в какой области и сколько времени) и удерживаю его в одной точке и предмет перемещается всё это время, что палец на экране. В onTouchEvent такое не получается, там улавливает только в том случае, если палец двигать по экрану. Подскажите решение. Добавлено через 10 минут P.S. это на всё на... подробнее

Показать сообщение отдельно
Kadagor
12 / 12 / 4
Регистрация: 17.09.2015
Сообщений: 48
25.02.2016, 21:59
Для удобства объявим отдельную функцию
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public boolean setAudioFromASSET(String str ){
        boolean f = false;
        AssetFileDescriptor fd = MainActivity.expansionFile.getAssetFileDescriptor("assets/wav/" + str);
        if(fd!=null) {
            try {
                MainActivity.audioPlayer.reset();
                MainActivity.audioPlayer.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength());
                MainActivity.audioPlayer.prepare();
                f = true;
                fd.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return f;
    }
Можешь переделать ее по фен-шуй к виду типа:
Java
1
public boolean setAudioFromASSET(String fileName, MediaPlayer mp)
Проверяем воспроизводит ли плеер . Если нет, подгружаем файл. Если да, делаем это чуть позже:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if(MainActivity.audioPlayer.isPlaying()){
    MainActivity.audioPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            if(fPrepareAudio) {
                setAudioFromASSET(audioFileName); 
                fPrepareAudio = false;
            }
        }
    });
}else{
    setAudioFromASSET(audioFileName);
    fPrepareAudio = false;
}
Точно не знаю, сработает ли OnCompletionListener один раз или каждый раз, когда файл проиграло, по этой причине использовал переменную fPrepareAudio. При объявлении присвоил ей true :
Java
1
private boolean fPrepareAudio = true;
Кнопка на воспроизведение. При нажатии на нее сразу подгружаем файл, но только первый раз:
Java
1
2
3
4
5
6
7
8
9
10
public void onClick(View v) {
    switch(v.getId()){
        case R.id.button1:
            if(fPrepareAudio) {
                setAudioFromASSET(audioFileName);
                fPrepareAudio = false;
            }
            MainActivity.audioPlayer.start();
            break;
     }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru