将媒体从一个活动传递到另一个活动

时间:2016-08-09 22:30:39

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

所以我试图在android上创建一个基本的音乐应用程序,它在列表视图中显示设备的歌曲,当一个人点击一首特定的歌曲时,应用程序应该在不同的活动上播放它。

到目前为止,我已经能够从SD卡中提取歌曲,创建第二个播放歌曲的活动(由播放/暂停按钮和搜索栏提供)。

但是如何将列表视图中用户点击的歌曲传递给第二个活动才能播放。

3 个答案:

答案 0 :(得分:0)

在这种情况下你可以使用单身人士,这样你就可以创建一个SongManager,它将是你的单身人士,可以存储你的歌曲并可以在第二个活动中播放 或者你可以在一个片段中显示列表视图,这样你的SongManager不是单身,而只是一个由显示片段的活动管理的简单对象,当你想播放这首歌时,你可以打开另一个片段这首歌要参加活动。

所以

ACTIVITY (create the object `SongManager`)
   FRAGMENT A (ListView)
   FRAGMENT B (Play)

答案 1 :(得分:0)

我建议只将文件名作为字符串传递,即

Intent intent = new Intent(ActivityA.this, ActivityB.class);
intent.putExtra("SongKey", songFileName);
startActivity(intent);

答案 2 :(得分:0)

您需要将mp3路径解析为新活动,因此新活动可以播放您的歌曲

              Intent intent = new Intent(getActivity(),Play.class);
                    intent.putExtra("title", titleX);
                    intent.putExtra("path", mp3path);
                    startActivity(intent);

然后在play.class活动中

        title = getIntent().getStringExtra("title");
        location = getIntent().getStringExtra("path");
        //other function
        mediaPlayer.setDataSource(location);
        mediaPlayer.prepare();