getCurrentPossition возвращает только 0

203
22 декабря 2017, 01:36

Хотел реализовать кнопки старта/паузы в notification'e, но метод getCurrentPosition никак не выдает реальное число, только 0.

public void songStream(int songPos){
    player.reset();
    songPosition = songPos;
    playSong = songList.get(songPosition);
    currSong = playSong.getId();
    Log.i(TAG,"Artist "+playSong.getArtist()+" Song "+playSong.getTitle());
    trackUri = ContentUris.withAppendedId
            (android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                    currSong);
    try {
        player.setDataSource(getApplicationContext(),trackUri);
    } catch (IOException e) {
        e.printStackTrace();
    }
    player.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {
        player.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }
    player.start();
}

Здесь я обрабатываю нажатия из notofication:

@Override
public int onStartCommand(Intent intent, int flags, int startId){
    songStream(songPosition);
    showNotification();
    if (intent.getAction().equals(Constants.PREV_ACTION)){
        try{
            songStream(songPosition-1);
        }
        catch (ArrayIndexOutOfBoundsException e){
            songStream(songList.size()-1);
        }
        count=0;
        showNotification();
        Log.i(TAG, "Clicked Previous");
    } else if (intent.getAction().equals(Constants.PLAY_ACTION)) {
        player.pause();
        pausePosition=player.getCurrentPosition();
        ++count;
        showNotification();
        Log.i(TAG, "Clicked Play Current position "+pausePosition);
    } else if (intent.getAction().equals(Constants.PAUSE_ACTION)) {
        player.seekTo(pausePosition);
        player.start();
        ++count;
        showNotification();
        Log.i(TAG, "Clicked Pause");
    } else if (intent.getAction().equals(Constants.NEXT_ACTION)){
        try{
            songStream(songPosition+1);
        }catch (IndexOutOfBoundsException e){
            songStream(0);
        }
        count=0;
        showNotification();
        Log.i(TAG, "Clicked Next");}
    return START_NOT_STICKY;
}

Переменной pausePosition я присвоил player.getCurrentPosition, т.е. после нажатия на кнопку старта, песня должна воспроизводиться с того момента, как была нажата кнопка паузы. Вопрос: что же мешает получить getCurrentPosition реальную позицию в песне, а не 0?

READ ALSO
Помогите передать Context

Помогите передать Context

Никак не получается передать Context из одного класса в другой

219
Как правильно отрисовывать объекты в java swing

Как правильно отрисовывать объекты в java swing

У меня есть много объектов, которые хочу отрисовать на экранЕсли дело обстоит в обычной отрисовке, то тут никаких проблем не возникает, все...

294
Перечисления(Enum) Java

Перечисления(Enum) Java

Например, у меня есть класс Person, у которого есть конструктор

260
Вопрос? В чём причина?

Вопрос? В чём причина?

/*При вводе n-го количества символов при условии, что первый введённый символ находится в диапазоне от 1 до 5 программа работает не корректно*/

213