0

我是 Android 编程新手。我想构建 MediaPlayer 应用程序。

实际上,我之前已经构建了一个简单的 MediaPlayer 应用程序。我以前的应用程序只有一个按钮播放、一个按钮暂停和一个按钮停止。当单击播放按钮时,歌曲将播放。

我的新应用程序想要使用 ListLayout 和一些按钮(如播放、暂停和停止)来制作歌曲列表。我想要的是当我单击歌曲列表中的第一首歌曲时,第一首歌曲将播放..

我已经在谷歌进行了一些研究,但没有找到我能理解的简单答案..我希望你们能帮助我..非常感谢..=)

这是我的更新代码..我不知道如何调用歌曲列表..我将我的歌曲 1、歌曲 2、歌曲 3 存储在原始文件中..但是为了播放歌曲,我只能播放一首歌曲..

  package com.example.test7;

  import android.media.MediaPlayer;
  import android.os.Bundle;
  import android.app.Activity;
  import android.view.View;
  import android.widget.AdapterView;
  import android.widget.ArrayAdapter;
  import android.widget.ImageButton;
  import android.widget.ListView;
  import android.widget.Toast;
  import android.widget.AdapterView.OnItemClickListener;

  public class MainActivity extends Activity {

MediaPlayer mp;
int position;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mp = MediaPlayer.create(this,R.raw.song1);

    setContentView(R.layout.activity_main);

    ListView list = (ListView) findViewById(R.id.listView1);
    String[] values = new String[] {"song1","song2","song3","song4","song5",
                                    "song6","song7","song8","song9","song10"};

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, values);

    list.setAdapter(adapter);

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

            ListView list2 = (ListView) findViewById(R.id.listView1);
            String item = (String) list2.getAdapter().getItem(position);
            Toast.makeText(MainActivity.this, item + " selected", 5).show();

            mp.start();
        }
    });

    ImageButton btnPlay = (ImageButton) this.findViewById(R.id.imageButton1);
    ImageButton btnPause = (ImageButton) this.findViewById(R.id.imageButton2);
    ImageButton btnStop = (ImageButton) this.findViewById(R.id.imageButton3);

    btnPlay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
        if (mp == null) {
                mp = MediaPlayer.create(MainActivity.this, R.raw.song1);

            }
        if (!mp.isPlaying()) {
             mp.start();

           }

        }
    });

    btnPause.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp != null)
            {
                mp.pause();
                position = mp.getCurrentPosition();
            }

        }
    });

    btnStop.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp != null)
            {
                if (mp.isPlaying()) {
                    mp.stop();
                }
                mp.release();
                mp = null;
            }
        }
    });
    }
}
4

2 回答 2

0

mp.reset(); 需要在代码中实现。

于 2014-06-10T04:06:27.327 回答
0

您可以通过使用将出现在 r.java 中的歌曲的最终 int 值来实现它注意:检查 R.java 文件中所有歌曲的最终 int 值。

final int[] mid = new int[] {0x7f040000,0x7f040001,0x7f040002,0x7f040003,0x7f040004,0x7f040005};
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
s=MediaPlayer.create(SimpleListViewActivity.this, mid[position]);
s.start();
}
});
于 2014-11-23T16:21:24.937 回答