Android媒体播放器在关闭应用程序后如何继续播放歌曲?

问题描述 投票:7回答:5

想知道关闭应用程序后下一首歌曲的播放方式,就像播放整个CD或播放列表...

android media-player
5个回答
14
投票

媒体播放器仅播放一个音频轨道。 媒体播放器的工作是监听onCompletion事件并播放下一首曲目。

MediaPlayer绑定到流程,而不是活动,因此只要流程运行,它就会一直播放。该活动可能被暂停或破坏,但不会影响MediaPlayer使用的内部线程。

我正在构建一个音频播放器来学习Android,您可以看到播放音频文件here的服务>

编辑

关于第一个注释:由于该服务和活动的生命周期不同,因此该服务将继续在后台运行,并在您“退出”该应用程序后继续运行。

为了播放下一个曲目

,该服务在MediaPlayer上注册了一个回调,以便在音频流完成时通知该服务。音频完成后,该服务将通过调用MediaPlayer.release()来清理MediaPlayer所使用的资源,然后使用下一个音轨创建一个新的新媒体播放器,并注册该音轨时再次通知自己完成,无限,:)。

MediaPlayer类不理解播放列表,因此该服务负责在上一个曲目完成后播放曲目。

在我创建的AudioPlayer服务中,活动在AudioPlayer中将曲目排队,而AudioPlayer负责按顺序播放它们。

我希望很清楚,如果您有时间,请检查上面提供的AudioPlayer服务的代码。它不是纯净的美丽,但却能发挥作用。


3
投票

您可以创建一个服务,以在应用程序退出或暂停后继续播放MediaPlayer。要使MediaPlayer播放连续的曲目,您可以注册一个onCompletionListener,它将决定下一个播放的曲目。这是一个执行此操作的简单示例服务:


1
投票

媒体播放器应从服务运行,这里我已将歌曲的数组列表从活动传递到服务,并且所有歌曲都通过读取arraylist来运行


0
投票

答案是Android服务,如下所述:http://developer.android.com/guide/topics/fundamentals.html为>>

您将创建一个服务,当您从应用程序收到播放命令时,您的应用程序将向后台服务发送一条消息以播放音乐。服务不会在前台运行,因此即使您将屏幕置于睡眠状态,它也会播放音乐。


0
投票

请注意,服务也在前台运行。

© www.soinside.com 2019 - 2024. All rights reserved.