MediaPlayer服务Android

时间:2013-01-04 05:38:59

标签: android android-service android-mediaplayer

我是Android新手。我正在为Media Player创建服务,以便即使我关闭应用程序也可以继续播放歌曲。我已经为Media Player创建了活动,它具有播放,暂停,下一个,上一个,搜索栏等所有功能,还包括oncompletionlistener。一切都很棒。但现在我希望所有这些都应该由服务来管理。

我创建了MyService类:

public class MyService extends Service {

    public static MediaPlayer mp;

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate() {
        mp = new MediaPlayer();     
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {  
        return START_STICKY;
    }

但是在我的播放器活动中,我为Songlist创建了ArrayList,我正在使用currentsongIndex并通过它我保持所有功能,如下一个,上一个和所有..现在在服务中如何获得歌曲列表,这也是必需的我的活动?我应该在哪里创建MediaPlayer对象意味着在服务或活动?

对于MediaPlayer我已经提到http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/。对于我的媒体播放器代码,您可以参考此网站。谢谢。 让我感到疑惑。我感到很困惑。很快回复我..

3 个答案:

答案 0 :(得分:7)

你走在正确的轨道上。我改编自SDK Samples;这就是我如何做到这一点并且效果很好。 从您的ArrayList(在您的活动中而不是从服务中)调用

onListItemClick

并启动启动音乐服务的意图:

startService(new Intent(MusicService.ACTION_PLAY));

在您的清单中,您需要添加:

 <intent-filter>
            <action android:name="com.blah.blah.action.PLAY" />
           <xxx xxx> 
 </intent-filter>

当然,在您的音乐服务中,您需要收到意图:

public int onStartCommand(Intent intent, int flags, int startId) {
    String action = intent.getAction();
    if (action.equals(ACTION_PLAY))
        processPlayRequest();
  }

请务必添加Intents以进行跳过,快退,停止等。 如果这有帮助,请告诉我。

答案 1 :(得分:1)

让应用程序在后台运行应该由“服务”本身来处理 请尝试以下示例http://www.vogella.com/articles/AndroidServices/article.html
服务旨在在后台工作。

答案 2 :(得分:0)

我经历了完全相同的事情!开发一个非常棒的MP3播放器应用程序是一件很长的事情。答案很长。

以下是一些真正帮助我的资源。 Android在他们的开发者文档中有一篇关于这件事的文章:

http://developer.android.com/guide/components/services.html

注意这篇长篇文章底部关于绑定服务和在前台运行的内容。

此外,管理玩家状态是让我头疼的原因。

你还想看看线程,因为产生新服务仍将执行主UI线程上的所有内容,听起来很疯狂但却是真的。查看ExecutorService以管理线程池。我希望我能告诉你这更容易。

不幸的是,我在网络上进行的所有正式培训都是来自付费网站:

http://www.pluralsight.com/training/Courses/TableOfContents/android-services

对于我认为的所有程序员来说,这是一个很好的资源,但是关于android编程的许多方面都有很好的部分,这些部分仅在其他教程网站上简要介绍过。

Vogella的资源也很好,如上所述。