簡體   English   中英

第一首完成后,媒體播放器播放下一首歌曲

[英]Media player play next song after completion of the first one

我想制作一個程序,在一個結束變量之后自動播放下一首歌;

String path = "/mnt/sdcard/Music/";
String[] fileArray;
public int songNumber = 0;

MediaPlayer mPlayer = new MediaPlayer();
public boolean isPlaying = false;
public boolean isPaused = false;`

虛空是;

 private void playMusic(String song){
    if(!isPlaying) {
        try {
            mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mPlayer) {
                    songNumber = songNumber + 1;
                    playMusic("/mnt/sdcard/Music/" + fileArray[songNumber]);
                }

            });

            mPlayer.reset();
            Toast.makeText(getApplicationContext(), song, Toast.LENGTH_SHORT).show();
            mPlayer.setDataSource(song);
            mPlayer.prepare();
            mPlayer.setOnCompletionListener((OnCompletionListener) this);
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (Exception e) {
            System.out.println("Exception of type : " + e.toString());
            e.printStackTrace();
        }

        mPlayer.start();
        isPlaying = true;
    }else{
        stopMusic();
    }
}

但是什么也沒用,在第一首歌結束后什么也沒發生

將無效代碼更改為此

private void playMusic(String song){
    if(!isPlaying) {
        try {
            mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mPlayer) {
                    isPlaying = false;
                    mPlayer.reset();
                    songNumber = songNumber + 1;
                    playMusic("/mnt/sdcard/Music/" + fileArray[songNumber]);
                }

            });
            Toast.makeText(getApplicationContext(), song, Toast.LENGTH_SHORT).show();
            mPlayer.setDataSource(song);
            mPlayer.prepare();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (Exception e) {
            System.out.println("Exception of type : " + e.toString());
            e.printStackTrace();
        }

        mPlayer.start();
        isPlaying = true;
    }else{
        stopMusic();
    }
}

會解決問題嗎

暫無
暫無

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

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