Как сыграть n раундов трека на state_ended в Exoplayer? - PullRequest
0 голосов
/ 06 апреля 2020

Количество раундов запрашивается у пользователя, и каждый раунд / оборот содержит 4 раза, воспроизводящих одну и ту же дорожку.

Но, код не работает должным образом, counterxx удваивается на "counterxx ++" и воспроизводит трек только половину (если раундов 4 (4 * 4 = 16), он проигрывается только 8 раз вместо 16 ) когда число раундов больше 2.

Как добиться желаемого результата?

Вот мой код, который я пробовал:

    counterxx=0; //To track how many times the track played 

    netcount = selectedrounds*4;

    Toast.makeText(NewsActivity.this, "NETCOUNT"+String.valueOf(netcount), Toast.LENGTH_SHORT).show();
    .
    .
    //Other exoplayer things
    .
    .
    player.addListener(new Player.EventListener() {
    @Override
    public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {


    if (playbackState == Player.STATE_ENDED) {

    if (counterxx<netcount)
    {

    player.seekTo(0);

    Toast.makeText(NewsActivity.this, String.valueOf(counterxx), Toast.LENGTH_SHORT).show();

    }

    else {

    if (player.isPlaying() || playWhenReady){

    try {

    player.stop();
    counterxx=0;

    }
    catch (Exception e)
    {
    }
   }
 }
    counterxx++;
    }} });
...