改变方向时保持音乐播放

时间:2016-12-12 21:36:11

标签: android rotation media

我正在为Android制作音乐播放器应用程序,我在改变手机方向的同时保持音乐播放存在问题。

integration = Integration.last
  Integration Load (3.9ms)  SELECT  "integrations".* FROM "integrations" ORDER BY "integrations"."id" DESC LIMIT $1  [["LIMIT", 1]]
(Object doesn't support #inspect)

我试过

create_table "integrations", force: true do |t|
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "integration_type"
    t.text     "api_data"
end
清单中的

它可以工作,但仅适用于从垂直方向到水平方向的第一次更改。当我再次从水平变为垂直时,相同的歌曲从开始时开始,而旧的仍在播放,所以我在同一时刻播放了2首歌曲。任何人都可以帮我吗?

3 个答案:

答案 0 :(得分:0)

保持配置更改并添加覆盖到onconfig ...

@Override
public void onConfigurationChanged(Configuration newConfig) {
}

当方向改变时默认调用oncreate,你需要像这个例子一样覆盖它,或者使用单例作为媒体播放器,这样它就不会创建其中两个

答案 1 :(得分:0)

这只是愚蠢但我只是让玩家保持静止。它有所帮助,现在它不会创建其他实例

答案 2 :(得分:0)

当您定位设备时,它会重新绘制布局,这就是活动重新启动的原因(调用onC onCreate())。您可以通过覆盖此方法来保存实例:

@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
}

并通过覆盖此方法恢复实例:

@Override
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
}

我在github上创建了关于此主题的源代码,保存了实例并进行了恢复。也许在某些情况下它会帮助你。 Orientation Mode