列表视图的音频播放器

时间:2015-02-11 10:01:09

标签: java android android-listview

当我播放另一个文件然后连续播放上一个文件时,我有音频文件。 所以,如果你有解决方案,请告诉我。

这是我的main.java

公共类MusicAndroidActivity扩展了Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    buttonPlay = (Button) findViewById(R.id.play);
    music = (ListView)findViewById(R.id.music);
  //  music.setAdapter(new ArrayAdapter<String>(this,, str));

    music.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,int position, long id) {

            switch (position){

                case 0:
                    MediaPlayer mp = MediaPlayer.create(getApplicationContext(),R.raw.hosannatamil);
                    mp.start();
                    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                        public void onCompletion(MediaPlayer mp) {
                            mp.release();
                        }
                    });
                    break;

                case 1:
                    MediaPlayer mp1 = MediaPlayer.create(getApplicationContext(),R.raw.one_less);
                    mp1.start();
                    mp1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                        public void onCompletion(MediaPlayer mp) {
                            mp.release();
                        }
                    });
                    break;
                case 2:
                    MediaPlayer mp2 = MediaPlayer.create(getApplicationContext(),R.raw.words);
                    mp2.start();
                    mp2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                        public void onCompletion(MediaPlayer mp) {
                            mp.release();
                        }
                    });
                    break;



            }
}
    });
}

2 个答案:

答案 0 :(得分:0)

如果要停止播放,则需要手动调用 MediaPlayer.stop()

如果您想再次启动相同的MediaPlayer,则必须在此之前调用 .prepare()

有关详细信息,请阅读reference page并查看其中的状态图。

答案 1 :(得分:0)

    if(mediaPlayer.isPlaying())
{
    //stop or pause your media player mediaPlayer.stop(); or mediaPlayer.pause();
    mediaPlayer.pause();
}
else
{
    mediaPlayer.start();
}

将此条件置于switch语句之前,mediaPlayer.start()也会创建Media Player的全局引用,而不是创建三个引用,如MediaPlayer mediaPlayer而不是MediaPlayer mp,mp1,mp2等,因为您可以创建Media Player对象同一个引用作为一个条件必须始终为true,也在switch语句中设置一个默认条件!