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

MediaPlayer: как продолжить работу аудио-плеера в фоновом режиме? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Android WebSocket http://www.cyberforum.ru/android-dev/thread1796791.html
Здравствуйте, начинаю разбиратся с WebSocket, использую библиотеку nv WebSocket Client, соединится с сервером получилось, передать и получить сообщение тоже. Но у меня есть несколько Activity в приложении, в которых использую сокет-соединение, как правильно организовать логику не ясно, я так понимаю надо какой-то клас, в котором будет переменная с соединением, и с него тащить connection для...
Android Принцип работы RecyclerView Можете объяснить принципп работы RecyclerView во время скроллинга? Как он заполняется элементами? Сколько элементов находится в каждый момент времени в этом виджете при скроллинге? Какой максимальный объем буфера этого виджета? http://www.cyberforum.ru/android-dev/thread1796772.html
Android Передача параметров внутрь apk
Всем привет! Для аналитики установок приложения нужно передавать идентификатор клика внутрь apk. Как я себе это представляю: есть распакованный из apk архив приложения, при переходе юзера скрипт берет его clickid записывает в файл с параметрами, запаковывает архив и отдает юзеру. Вопрос какими инструментами это реализовать на Linux сервере? И можно писать параметр в файл resources.arsc, или...
Android Ошибка с xml разметкой после добавления Drawer
Я добавил в свою активность Drawer, и после этого она перестала запускаться и появилась вот эта ошибка: 08-20 17:50:52.920 23304-23304/spsoft.myapplication E/AndroidRuntime: FATAL EXCEPTION: main Process: spsoft.myapplication, PID: 23304 ...
Android MediaPlayer: не получается воспроизвести музыкальный файл из списка http://www.cyberforum.ru/android-dev/thread1796175.html
Не получается воспроизвести музыкальный файл из списка. Алгоритм такой: записал все media файлы на устройстве в список, далее отобразил названия треков в listview. Скажите как теперь запустить конкретный трек при нажатии пользователем по нему. Запустить ведь по uri можно, как его тогда его запомнить при считывании всех файлов? Для каждого медиа файла создаю объект song (может это и глупо). Сам...
Android Баг или фича в работе светового сенсора? Всем привет. Недавно ваял приложение, очень простое, оно определяет освещение и исходя из этого включает или выключает фонарик. Вся эта история работает из сервиса. Проблема вот в чем, когда я гашу экран телефона, то перестает работать моё приложение, тоесть сервис работает, но сама функция по включению выключению фонарика перестает работать напрочь. Может устройство само отключает сенсор при... подробнее

Показать сообщение отдельно
kozak95
34 / 34 / 10
Регистрация: 01.11.2013
Сообщений: 319
22.08.2016, 15:11  [ТС]     MediaPlayer: как продолжить работу аудио-плеера в фоновом режиме?
REALIST07, Сделал следующим образом:
С активити стартую сервис, соответсвено вызывается OnCommandStart:
Java
1
2
3
4
5
6
7
8
9
10
11
12
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        int method = 0;
 
        if (intent != null) {
            method = intent.getIntExtra("action", -1);
            path = intent.getStringExtra("path");
        }
        mHandler.sendMessage(mHandler.obtainMessage(method, intent));
 
        return START_STICKY;
    }
В сервис номер действия которое выполнится - это у меня запуск плеера: там я вызываю App.sendLocalBroadcastMessage и передаю текущее время композиции и общее
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    @Override
    public boolean handleMessage(Message msg) {
        int method = msg.what;
 
            switch (method) {
                case 0:
                    //Intent intent = (Intent) msg.obj;
                    try {
                        mediaPlayer.setDataSource(path);
                        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                        mediaPlayer.prepare();
                        mediaPlayer.start();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    App.sendLocalBroadcastMessage("MyAction", mediaPlayer.getCurrentPosition(),mediaPlayer.getDuration());
                break;
            }
        return false;
    }
sendLocalBroadcastMessage выглядит вот так:
Java
1
2
3
4
5
6
    public static boolean sendLocalBroadcastMessage(String action,int result1, int result2) {
        Intent sendIntent = new Intent();
        sendIntent.putExtra("mediaPos_new",result1);
        sendIntent.putExtra("mediaMax_new",result2);
        return LocalBroadcastManager.getInstance(context).sendBroadcast(sendIntent);
    }
Ну и в активити принимаю:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
        IntentFilter intentfilter= new IntentFilter();
        intentfilter.addAction("MyAction");
        LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                int mediaPos_new = intent.getIntExtra("mediaPos_new", -1);
                int mediaMax_new = intent.getIntExtra("mediaMax_new",-1);
                seekbar.setMax(mediaMax_new);
                seekbar.setProgress(mediaPos_new);
                tvDurationCurrent.setText((millsecToSec(String.valueOf(mediaMax_new))));
                tvDurationEnd.setText((millsecToSec(String.valueOf(mediaPos_new))));
            }
        },intentfilter);
Но приложение падает с NullPointer. Что неправильно делаю?

Добавлено через 33 минуты
С NullPointer решил проблему, но как постоянно передавать эти сообщения на активити?
 
Текущее время: 14:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru