当前位置: 首页 > 面试题库 >

旋转设备时丢失“ MediaPlayer”(和其他变量)

蔚和风
2023-03-14
问题内容

我正在为Android创建音乐播放器,并且可以正常工作。问题是,当我水平转动设备时,我会丢失活动中的所有变量(这很有意义,因为它已销毁并重新创建)。

我曾尝试使用捆绑软件通过onSaveInstanceState和onRestoreInstanceState存储播放器的状态,但我仍然无法访问媒体播放器。是否可以通过捆绑方式传递诸如MediaPlayer之类的对象?我应该使用数据库吗?

谢谢


问题答案:

您应该使用“服务”来提供“后台”音频播放功能,使用户可以在活动之间切换或旋转设备而无需停止播放。

签出由CM在github上开源的android_packages_apps_Music,它使用MediaPlaybackService扩展Service来做到这一点,签出MediaPlaybackService.java



 类似资料:
  • 以下是经典的实践中的一致性: 当线程A写入一个易失性变量,随后线程B读取相同的变量时,A在写入易失性变量之前可见的所有变量的值在读取易失性变量后变得对B可见。 我不确定我真的能理解这句话。例如,在这种情况下,所有变量的含义是什么?这是否意味着使用对使用非volatile变量也有副作用<在我看来,这句话有一些我无法理解的微妙含义<有什么帮助吗?

  • Docker的manager节点将Swarm的状态和日志存储在/var/lib/docker/swarm/目录下。在1.13或者更高版本中,这个目录下包含加密Raft日志的密钥。如果没有这些密钥,就没有办法恢复Swarm。 我们可以在任何一个manager节点上,按照下面的过程进行备份。 如果Swarmauto-lock设置被打开,我们需要unlock key才能进行从备份恢复。如何多的unloc

  • 我在代码中实现旋转器时遇到了问题。不太清楚它是怎么工作的。但是这里有一个我想做的简单的想法。(例如:点击旋转器,你有两个选项“第2页”和“第3页”。所以,如果你点击“第2页”,它会转到有新内容的第2页。有什么方法可以做到这一点吗?? 我也有图像按钮去下一页和返回。只想实现一个旋转框,这样你就可以更快地导航到不同的页面。 } 05-22 01:32:40.058:E/SpannableStringB

  • 我有一个聊天应用程序,可以打开一个到服务器的Websocket。该应用程序有2个模块- chat sdk:处理连接和来回消息传递。 用户界面:处理适配器和视图 聊天UI位于活动托管的片段上。 一切都很好,但当我决定在设备旋转上使用持久性时,我遇到了问题。当我旋转设备时,websocket重新连接(这是正常的),活动被重新创建,片段也被重新创建。 经过设备旋转和一些调试,我看到我的消息列表被正确填充

  • 我写了一个方法,随机生成多边形形状,然后在屏幕上旋转和移动。因为我想检测与这些形状的碰撞,所以我没有使用Graphics2D旋转它们,而是使用仿射变换来旋转它们。但由于某些原因,某些形状被旋转弄得一团糟,而其他形状则不受影响。下面是一个导致问题的形状示例。 如果用以下直线替换这些点,则形状基本保持不变。下面的形状当然是对称的,但是旋转方法确实适用于其他随机生成的不均匀形状。