2014-10-31 211 views
1

我試圖爲我的應用程序設置背景音樂,我已經嘗試了一些在因特網中找到的例子,但任何人都可以使用,我的應用程序不顯示任何背景音樂。MediaPlayer Service不播放音樂

這裏是我的服務類代碼:

import android.app.Service; 
import android.content.Intent; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.os.Binder; 
import android.os.IBinder; 
import android.os.PowerManager; 

class MusicService extends IntentService { 
    MediaPlayer mediaPlayer; 

    public MusicService(){ 
     super("MusicService"); 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

    @Override 
    public void onCreate() { 
     mediaPlayer = MediaPlayer.create(this, R.raw.backtrackquiz); 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     if (!mediaPlayer.isPlaying()) { 
      mediaPlayer.start(); 
     } 
     return START_STICKY; 
    } 

    public void onDestroy() { 
     if (mediaPlayer.isPlaying()) { 
      mediaPlayer.stop(); 
     } 
     mediaPlayer.release(); 
    } 

    public void onCompletion(MediaPlayer _mediaPlayer) { 
     stopSelf(); 
    } 
} 

這裏是哪裏,我怎麼宣佈它在我的MenuActivity類:

@Override 
protected void onStart() { 
     super.onStart(); 
     if(playIntent == null){ 
     playIntent = new Intent(this, MusicService.class); 
     startService(playIntent); 
     } 
} 

回答

2

不要忘記在manifest註冊您的服務:

<service android:name="com.your.package.MusicService" 
     android:enabled="true"/> 
+0

好吧,我做到了,但現在它拋出我一個的RuntimeException:無法實例化的服務。任何建議? – 2014-10-31 18:58:43

+0

看看這個:http://stackoverflow.com/questions/5027147/android-runtimeexception-unable-to-instantiate-the-service – 2014-10-31 19:04:09

+0

基於該鏈接,我認爲你需要爲你的服務添加一個構造函數 – 2014-10-31 19:04:44

1

嘿請確保你在清單文件中註冊它。

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
... 
<service android:name="MusicService " android:enabled="true"></service> 
</application> 

享受...