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

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

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

Chronometr в аудиоплейере - Программирование Android

09.12.2015, 16:40. Просмотров 200. Ответов 7
Метки нет (Все метки)

Пишу я в общем аудиоплейер, нужно чтобы компонент Chronometr:
1) Увеличивал/уменьшал значение при нажатии клавиш перемотки вперед/назад
2) устанавливал значение относительно позиции SeekBar, если его перетаскивать вручную

еще возникла такая проблема: при команде stop он останавливается, но потом после start, продолжается не со времени остановки а накидывает еще то время которое он пробыл остановленым
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
09.12.2015, 17:15 #2
Цитата Сообщение от Pivchancky Посмотреть сообщение
при команде stop он останавливается
скорее всего он физически останавливает воспроизведение, но отсчет остановится не успевает.
а метода pause для него нет? почему обязательно стоп
0
Pivchancky
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 23
09.12.2015, 17:29  [ТС] #3
Да, именно так, увы метода pause нет.
0
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
11.12.2015, 19:22 #4
продолжаем тему
допустим мы хотим по нажатию на кнопку из прошлой темы запускать/оставливать хронометр (только хронометр, без медиаплеера, мне лениво тестировать еще и со звуком )

я лучше покажу ведь код активити, так будет проще понять мне кажется
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class MainActivity extends AppCompatActivity {
 
    private long stopped;
    private Chronometer hron;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        hron = (Chronometer) findViewById(R.id.chronometer);
    }
 
    public void playStop(View v) {
        v.setSelected(!v.isSelected());
        if (v.isSelected()) {
            hronoStop();
        } else {
            hronoStart();
        }
    }
 
    private void hronoStart() {
        stopped = hron.getBase() - SystemClock.elapsedRealtime();
        hron.stop();
    }
 
    private void hronoStop() {
        hron.setBase(SystemClock.elapsedRealtime() + stopped);
        hron.start();
    }
}
в разметке активити у нас должны быть элементы
XML
1
2
3
4
5
6
7
8
9
10
11
    <ImageView
        android:id="@+id/playStop"
        android:background="@drawable/play_stop_selector"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="playStop"/>
 
    <Chronometer
        android:id="@+id/chronometer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
0
Pivchancky
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 23
11.12.2015, 19:30  [ТС] #5
Паблито, ну у меня ImageButton, но не суть. А если я поставлю вопрос так" как привязать хронометр к сикбару?
0
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
11.12.2015, 20:02 #6
а почему вообще хронометр?
в нем жутко неудобно выставлять значения

я бы гуглил (ну лучше ты, надо и самому что-то делать) в сторону Timer, TimerTask, у плеера есть getCurrentPosition()

к сикбару привязать легко, но я бы начал с того что бросил хронометр и изучал Timer, TimerTask
0
Pivchancky
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 23
11.12.2015, 20:25  [ТС] #7
Паблито,
Цитата Сообщение от Паблито Посмотреть сообщение
Timer, TimerTask
у меня таких компонентов нет
0
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
11.12.2015, 20:29 #8
это классы из джавы
можно запустить в отдельном потоке задачу, которая будет например 1 раз в секунду опрашивать медиаплеер и на основании полученных данных выставлять позицию на сикбаре и обновлять обычное TextView на котором показывается время

в интернете завались примеров плееров, какие угодно надо только вбить в гугл запрос
0
Yandex
Объявления
11.12.2015, 20:29
Ответ Создать тему
Опции темы

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