Android Listview和媒体播放器

时间:2011-07-11 23:08:24

标签: android android-listview android-mediaplayer

我目前有listview,当您点击某个项目时,它会转到新窗口并开始播放与该position相关联的歌曲。问题是当我按下后退按钮返回listview并按下相同的项目时,音乐会再次开始播放,而不是已播放的内容。有没有解决这个问题,所以当你点击同一个项目并播放该歌曲时,它不会重播这首歌?感谢

2 个答案:

答案 0 :(得分:0)

您需要使用service让音乐在后台运行。

答案 1 :(得分:0)

查看有关创建播放音乐服务的this article。看起来像你想要做的。

您可以做的另一件事是添加一个函数,当调用onPause或onStop方法时激活音乐。然后,非活动的音乐播放活动将在自己的好时间被Android操作系统破坏,你不必担心播放多个音乐文件。此方法的缺点是,只有在新窗口可见时才能播放音乐。如果更改窗口,它将暂停,因为将调用onPause或onStop方法。如果你想让音乐在后台播放,我认为你需要使用服务技术。

要启动该服务,您可以使用intent绑定它或使用startService方法。

例如,在上面链接的文章中,服务在此处启动:

public class MusicDroid extends ListActivity {
    public static final String MEDIA_PATH = new String("/sdcard/");
    private List<String> songs = new ArrayList<String>();
    private MDSInterface mpInterface;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.songlist);
        this.bindService(new Intent(MusicDroid.this,MDService.class),
            null, mConnection, Context.BIND_AUTO_CREATE); // <- starting service by creating a binding.
    }
}

official Android Services api页面应该让您对如何处理服务有一个很好的概述。