-1

我构建了一个带有评论的应用程序,该应用程序从应用程序数据的文件夹中播放一首歌曲..但我希望应用程序从数据设备打开音乐(例如当您连接 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;
                                }
         } 

如何更改代码?

4

1 回答 1

0

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

如果您尝试使用耳机控件和系统范围的控件侦听器,请查看这篇文章,该文章解释了如何使用 onKeyListener 和 BroadcastReceiver 实现媒体控件。

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

    MediaPlayer mp = new MediaPlayer();
    mp.setDataSource("/mnt/sdcard/directory/audiofile.wav"); //Path to the file on the device

并使用 MTP、Mass Storage 或设备资源管理器将文件放在设备上。

EDIT2停止媒体并在之后继续播放:

    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);
于 2013-06-12T09:28:57.127 回答