简体   繁体   中英

android Media Player stream more than 1 URL

I'm using mediaPlayer in my Android application to stream an MP3 url from online. Instead of just playing the 1 url, how can I stream 5 urls to play one after the other? here's my code

Uri myUri = Uri.parse("https://db.tt/9nBgouRf");


        final MediaPlayer sdrPlayer = new MediaPlayer();



        try {
            sdrPlayer.setDataSource(this, myUri);
            sdrPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            sdrPlayer.prepare(); //don't use prepareAsync for mp3 playback
        } catch (IOException e) {

            e.printStackTrace();            
            Toast.makeText(channelx.this,
                    "Please turn on WiFi and try again", Toast.LENGTH_LONG).show();
        }




        play.setOnClickListener( new OnClickListener() {

            @Override
            public void onClick(View v) {

                    sdrPlayer.start();


                }
                }

        );

Just create a List to hold all of your URIs

Set up some class variables:

    private int playlistPos = 0;
    private List<Uri> myUris = new ArrayList<Uri>();
    private MediaPlayer sdrPlayer = new MediaPlayer();

Set up a method for initialising the song:

    public initSong(Uri myUri) {
        try {
            sdrPlayer.setDataSource(this, myUri);
            sdrPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            sdrPlayer.prepare(); // don't use prepareAsync for mp3 playback
        }
        catch (IOException e) {

            e.printStackTrace();
            Toast.makeText(channelx.this,
                       "Please turn on WiFi and try again",
                       Toast.LENGTH_LONG).show();
        }
    }

Then in the onCreate()

    myUris.add(Uri.parse("https://db.tt/9nBgouRf"));
    // Add the others as well...

    initSong(myUris.get(playlistPos);

    sdrPlayer.setOnCompletionListener(new OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            playlistPos++;
            initSong(myUris.get(playlistPos));
            sdrPlayer.start(); // Start it as well if you wish
        }
    });

    play.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            sdrPlayer.start();

        }
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM