Android Media Player下一首歌

时间:2014-11-03 15:23:38

标签: android android-listview

我在MainActivity中有一个列表视图来自我使用此

传递我的列表视图位置
  Intent intent = new Intent(MainActivity.this, Linkview.class);

            intent.putExtra("position", position);
            startActivity(intent);

我在这里有一个Linkview课程,我使用这个

获得了我的职位
 final Bundle bundle = getIntent().getExtras();
  position = bundle.getInt("position");

我有一个linkArray列表。

  link = getResources().getStringArray(R.array.lin

我的播放器播放得很好,我可以阻止它。 但我有一个下一个按钮

  next.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

                uri = Uri.parse(link[position+1]);

        }
    });

当我按下我的下一个按钮时,没有发生任何事情。我希望当我按下array下一个链接中的下一个按钮时,将播放但没有播放。 我怎么能解决这个问题。

我的漏洞代码在这里。

public class Linkview extends Activity {
    Button play, stop, next;

    MediaPlayer mediaPlayer;
    private String currentSongIndex;
    RowItem rowItem;
    MainActivity mainActivity;
    Uri uri;
    public String link[];
    int position;

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
        setContentView(R.layout.activity_linkview);
        stop = (Button) findViewById(R.id.stopbutton);
        play = (Button) findViewById(R.id.playbutton);
        next = (Button) findViewById(R.id.nextbutton1);
        link = getResources().getStringArray(R.array.link);

        // String itemString = MainActivity.link[position];

        final Bundle bundle = getIntent().getExtras();
        // String link = bundle.getString("link");
        // position = bundle.getInt("position");

        next.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                mediaPlayer.stop();
                if (position <= 2) {
                    uri = Uri.parse(link[position + 1]);
                }
            }
        });
        position = bundle.getInt("position");
        uri = Uri.parse(link[position]);

        // .parse("android.resource://com.prgguru.example/"
        // + R.raw.hosannatamil);");
        mediaPlayer = new MediaPlayer();
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        try {
            mediaPlayer.setDataSource(getApplicationContext(), uri);
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {
            mediaPlayer.prepare();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mediaPlayer.start();

        stop.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                if (mediaPlayer != null && mediaPlayer.isPlaying()) {

                    mediaPlayer.stop();
                }

            }
        });

        play.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                // TODO Auto-generated method stub
                try {
                    mediaPlayer.prepare();
                } catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                mediaPlayer.start();

            }
        });

    }

    protected void onDestroy() {
        super.onDestroy();
        // TODO Auto-generated method stub
        if (mediaPlayer != null) {
            mediaPlayer.release();
            mediaPlayer = null;
        }
    }

}

1 个答案:

答案 0 :(得分:1)

也许这会奏效:

next.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        mediaPlayer.stop();
        uri = Uri.parse(link[position + 1]);
        mediaPlayer.setDataSource(getApplicationContext(), uri);
        mediaPlayer.prepare();              
        mediaPlayer.start();
    }
});