【发布时间】:2015-03-04 09:06:24
【问题描述】:
我正在尝试将服务用于背景音乐。
package com.example.neotavraham;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
public class PlayMusicService extends Service implements MediaPlayer.OnPreparedListener {
public static final String ACTION_PLAY = "com.example.neotavraham.PLAY";
MediaPlayer mMediaPlayer = null;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent.getAction().equals(ACTION_PLAY)) {
mMediaPlayer = MediaPlayer.create(this, R.raw.yedid_nefesh);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.prepareAsync(); // prepare async to not block main thread
}
return flags;
}
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
我从MainActivity 调用它,行:startService(new Intent(PlayMusicService.ACTION_PLAY));
当然我添加了一个意图过滤器
<intent-filter>
<action android:name="com.example.neotavraham.PLAY"/>
</intent-filter>
我在互联网上寻找一个好的解决方案,但找不到...我该怎么办?
【问题讨论】:
-
那么上面的问题是什么?什么不工作?
-
@SMR,哎呀,我忘记添加错误了,虽然我在标题中写了它,但应用程序崩溃并且错误是“服务意图必须明确”
-
您在清单中为您的服务命名了什么?请向我们展示那部分。
-
你是如何启动服务的?
标签: android android-intent android-service android-mediaplayer