簡體   English   中英

android Media Player流超過1個URL

[英]android Media Player stream more than 1 URL

我在Android應用程序中使用mediaPlayer從網上流式傳輸MP3網址。 我不只是播放1個URL,而是如何流5個URL依次播放? 這是我的代碼

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();


                }
                }

        );

只需創建一個列表即可保存所有URI

設置一些類變量:

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

設置初始化歌曲的方法:

    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();
        }
    }

然后在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();

        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM