Android媒体播放器-从数据设备播放

Android媒体播放器-从数据设备播放,android,media-player,Android,Media Player,我创建了一个带有注释的应用程序,可以播放应用程序数据文件夹中的一首歌曲。。 但我希望应用程序从数据设备打开音乐(比如连接samsumg耳机并按下按钮时) 守则: public MediaPlayer song1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.

我创建了一个带有注释的应用程序,可以播放应用程序数据文件夹中的一首歌曲。。 但我希望应用程序从数据设备打开音乐(比如连接samsumg耳机并按下按钮时) 守则:

    public MediaPlayer song1;



@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        song1 = MediaPlayer.create(getApplicationContext(), R.raw.smashing_the_opponent);

    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
        case R.id.start:
            Log.i(tag, "Start item Clicked");
            Toast.makeText(getApplicationContext(), "Music On", Toast.LENGTH_LONG).show();
            song1.play();
        return true;
                                }
         } 

如何更改代码?

我不确定我是否正确理解了您的问题,您可能希望尝试更明确地表达它

如果您正在尝试使用耳机控件和系统范围的控件侦听器,请阅读一篇文章,其中解释了如何使用onKeyListener和BroadcastReceiver实现媒体控件

编辑:播放存储在设备内存中的媒体:

并使用MTP、大容量存储或设备资源管理器将文件放在设备上

EDIT2:要停止媒体,然后继续播放:


我会更清楚地解释我自己。我希望按钮可以播放音乐,但不是从我包装的文件夹播放,而是从设备数据播放。但是如果有人将音乐放在SD卡或其他文件夹中-我希望媒体播放器将从设备停止的位置恢复
    MediaPlayer mp = new MediaPlayer();
    mp.setDataSource("/mnt/sdcard/directory/audiofile.wav"); //Path to the file on the device
    MediaPlayer mp = new MediaPlayer();
    ...//Play media, do stuff....
    int currentTime = mp.getCurrentPosition();
    mp.pause();
    ...//Media is stopped, do stuff...
    //You can even reload the whole MediaPlayer if necessary, all you need is the media (path) and millisecond CurrentTime
    mp.start();
    mp.seekTo(currentTime);