Android中的媒体播放器使用MediaStore

时间:2016-08-10 18:02:43

标签: android listview android-intent media-player android-mediaplayer

public class PlayerScreen extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener {

private MediaPlayer mp;
private Button buttonplaypause;
private int count;
private SeekBar seekbar;
private int curpos, prevpos;
private Bundle b;
private String title;
private final Handler handler = new Handler();
private Runnable updatePositionRunnable = new Runnable() {
    public void run() {

        seekbar.setProgress(mp.getCurrentPosition());
        handler.postDelayed(this, 6000);
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_player_screen);
    title = b.getString("title");
    mp = new MediaPlayer(); 
    try {
        Log.d("message", "message");
        mp.setDataSource(Environment.getExternalStorageDirectory().getPath()+"/Music/"+title);
        mp.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }

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

    buttonplaypause = (Button) findViewById(R.id.buttonPlayPause);
    seekbar = (SeekBar) findViewById(R.id.seekBar);
    seekbar.setMax(mp.getDuration());
    buttonplaypause.setBackgroundResource(R.drawable.play);

    seekbar.setOnSeekBarChangeListener(this);
    handler.postDelayed(updatePositionRunnable, 6000);
}

public void onProgressChanged(SeekBar mySeekBar, int progress, boolean fromUser) {
    if (mp.isPlaying()) {
        mp.seekTo(progress);
    }
}

public void onStartTrackingTouch(SeekBar mySeekBar) {
}

public void onStopTrackingTouch(SeekBar mySeekBar) {
}

public void toPlayPause(View v) {
    if (count % 2 == 0) {
        buttonplaypause.setBackgroundResource(R.drawable.pause);
        curpos = mp.getCurrentPosition();
        prevpos = curpos;
        mp.seekTo(curpos);
        mp.start();
        count++;
        buttonplaypause.setBackgroundResource(R.drawable.play);
        mp.pause();
        count++;
    }
}
}

我要做的是建立一个音乐播放器,在列表视图中显示一个活动中的歌曲列表,当用户点击一个项目时,应该以另一个意图播放特定歌曲(由播放和暂停按钮)。上面提供的代码是第二个活动的代码(第一部分即列出歌曲完成)。第一个Activity将歌曲标题传递到此活动接收的包中。我是android的新手,对此并不了解。我不知道如何将歌曲从一个意图传递到另一个意图,以便播放它。我认为问题出在setDataSource()行中。

当在列表视图中点击项目时打开第二个意图(即上面提供的代码)时,搜索栏到达它的结尾并且没有播放歌曲

如果还有其他更好的方式将歌曲从一个意图传递到另一个意图,请随时详细描述。

0 个答案:

没有答案