我是新来的Android系统。 我创建了媒体播放器服务,以便它可以继续播放歌曲,即使我关闭应用程序。 我创建活动媒体播放器,它是为所有喜欢播放,暂停,下一个,上,搜索栏的功能,还包括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;
}
但在我的玩家活动我创建的ArrayList为的SongList从我正在currentsongIndex,并通过它我维护着所有的功能,例如下一个,上和所有..现在在服务我如何得到这还需要在我的活动的SongList? ? 我应该在哪里创建MediaPlayer对象意味着服务或活动?
对于MediaPlayer的我已经下文称http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/ 。 对于我的媒体播放器的代码,你可以参考这个网站。 谢谢。 Pleaze清楚我的疑问。 我感到很困惑。 尽快回复我。
你是在正确的轨道上。 我已经适应了从SDK样本; 这就是我如何做到这一点,它的伟大工程。 从你的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();
}
一定要加意图的跳跃,后退,停止等。让我知道,如果这有助于。
获取该应用程序在后台运行,应该由“服务”本身得到照顾。
试试下面这个例子http://www.vogella.com/articles/AndroidServices/article.html
服务被设计成在后台工作。
我经历同样的事情去了! 这是一个长途制定甚至一个真正伟大的MP3播放器应用程序。 答案是很长。
这里有一些资源,真正帮助了我。 Android已经在他们的开发文档这事一个文章:
http://developer.android.com/guide/components/services.html
注意它说大约在前景势必服务和运行这篇长文的底部。
此外,管理球员的状态是什么原因造成最让我头疼。
你也想看看线程,因为产卵新的服务将仍然在主UI线程执行的一切,听起来疯狂,但却真实。 看看在ExecutorService的管理线程池。 我希望我能告诉你,这是比较容易。
不幸的是大多数的来自全国各地的网络,但与Android服务我的正规培训来自一个付费网站:
http://www.pluralsight.com/training/Courses/TableOfContents/android-services
这是我认为所有的程序员一个很好的资源,但有关于Android编程那些只在其它教程网站了简短的许多方面很大的部分。
在Vogella的资源也不错,上面提到的。