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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Включение wifi роутера http://www.cyberforum.ru/android-dev/thread1667315.html
Доброго времени суток всем. На android никогда ничего не писал, но нужно срочно сделать небольшую программу: Включение wifi роутера по времени, значок wifi роутера не показан вверху(не извещает что...
Программирование Android Что будет в случае пересоздания активити Вот у меня есть активити и сервис. В активити есть, к примеру TextView и сервис производит какие то вычисления и передает результат в активити, активити отображает результат в TextView. В активити в... 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();). Почему так? Ведь метод должен прекратить работу...
Программирование Android Замена изображения в imageview по нажатию http://www.cyberforum.ru/android-dev/thread1667243.html
Всем привет! Такой вопрос: Нажимаю на imagevie и хочу что бы менялось изображение. Имеется 3 лаяута в которых есть такой код: <ImageView android:layout_width="60dp" ...
Программирование Android Обработка длительного нажатия В игре нужно перемещать предмет тогда, когда палец на экране: пальцем касаюсь экрана (не важно, в какой области и сколько времени) и удерживаю его в одной точке и предмет перемещается всё это время,... подробнее

Показать сообщение отдельно
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;
     }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru