Потоковый аудиофайл с URL с помощью панели поиска и строки положения - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть приложение, которое воспроизводит mp3-файлы из папки raw и работает отлично.Мне нужно изменить источник файлов с необработанной папки на URL, однако я хочу сохранить строку положения и строку поиска.Я просто хочу создать поток приложения из URL-адреса или из необработанной папки, чтобы в приложении ничего не нужно было менять.

Я хочу сохранить поиск и строку положения без каких-либо изменений.Все, что мне нужно сделать, это заменить необработанную папку в каталоге приложения на URL-адрес с Google Drive.

любая помощь будет оценена.

public class literature_book1_partone extends AppCompatActivity {

Button playBt1;
SeekBar positionBar;
TextView elopsedtimeLable;
TextView remainingTimeLable;
MediaPlayer mp;
int totalTime;

AdView mAdView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_literature_book1_partone);




    mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

playBt1 = (Button) findViewById(R.id.playButton);
elopsedtimeLable = (TextView) findViewById(R.id.elopsedtimeLable);
remainingTimeLable = (TextView) findViewById(R.id.remainingTimeLable);


    mp = MediaPlayer.create(this, R.raw.altamlat);
    mp.setLooping(true);
    mp.seekTo(0);
    mp.setVolume(0.5f, 0.2f);
    totalTime = mp.getDuration();


positionBar = (SeekBar) findViewById(R.id.positionBar);
positionBar.setMax(totalTime);
positionBar.setOnSeekBarChangeListener(

        new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

                if (fromUser){

                    mp.seekTo(progress);
                    positionBar.setProgress(progress);
                }

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        }
);


new Thread(new Runnable() {
    @Override
    public void run() {
        while (mp != null){
            try {

                Message msg = new Message();
                msg.what = mp.getCurrentPosition();
                handler.sendMessage(msg);

                Thread.sleep(1000);
            } catch (InterruptedException e){}

        }
    }
}).start();

}

private Handler handler = new Handler (){

    @Override
    public void handleMessage(Message msg) {
        int currentPosition = msg.what;
        positionBar.setProgress(currentPosition);

        String elopsedTime = createTimeLable (currentPosition);
        elopsedtimeLable.setText(elopsedTime);

        String remainingtime = createTimeLable(totalTime-currentPosition);
        remainingTimeLable.setText("- " + remainingtime);

    }
};


public String createTimeLable (int time){

    String timelable = "";
    int min = time /1000/60;
    int sec = time /1000 % 60;

    timelable = min + ":";
    if (sec < 10)timelable += "0";
    timelable += sec;
    return timelable;


}
public void playBtnClick(View view){

    if (!mp.isPlaying()){

        mp.start();
        playBt1.setBackgroundResource(R.drawable.pause);

    }else {

        mp.pause();
        playBt1.setBackgroundResource(R.drawable.play);

    }

}

@Override
public void onBackPressed() {
    if (mp.isPlaying()) {
        mp.stop();
    }
    super.onBackPressed();
}

}

...