2011-11-26 29 views
2

我有一個服務,它發生在一個音頻文件,並與媒體播放器進行播放,這是我如何調用我的服務我的服務是沒有得到所謂的

private void playAudio(String url) throws Exception{ 
Intent music = new Intent(this,MusicService.class); 
music.putExtra("paths", path); 
startService(music); 

} 

,這是我的服務

  class MusicService extends Service implements OnCompletionListener { 
       MediaPlayer mediaPlayer; 
       String musicFile; 


    @Override 
     public void onCreate() { 
    mediaPlayer = new MediaPlayer(); 
    mediaPlayer.setOnCompletionListener(this); 
    Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
     public int onStartCommand(Intent intent, int flags, int startId) { 
    Bundle e = intent.getExtras(); 
    musicFile= e.getString("paths"); 
    try { 
     mediaPlayer.prepare(); 
     mediaPlayer.setDataSource(musicFile); 
     } catch (IllegalArgumentException i) { 
     // TODO Auto-generated catch block 
      i.printStackTrace(); 
     } catch (IllegalStateException i) { 
      // TODO Auto-generated catch block 
      i.printStackTrace(); 
     } catch (IOException i) { 
      // TODO Auto-generated catch block 
      i.printStackTrace(); 
     } 
    if (!mediaPlayer.isPlaying()) 
     {    
     mediaPlayer.start();    
     } 
     return START_STICKY; 
    } 

    @Override 
    public void onCompletion(MediaPlayer mp) { 
// TODO Auto-generated method stub 

    } 

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


    } 

服務永遠不會執行,敬酒永遠不會成功,媒體播放器也不會播放路徑。謝謝,我提前爲幫助

我若在我的清單這樣

<service android:name=".MusicService" android:enabled="true"></service> 

我得到一個強制關閉錯誤

+0

你有例外嗎?在DDMS/LogCat中查看,如果你得到一個你無法理解的異常在這裏發佈。 – Asher

+0

是的,我得到了一些說無法啓動服務IllegalAccessException –

+0

堆棧跟蹤..... – Asher

回答

8

你唯一的例外是因爲系統無法初始化您的服務(調用它的構造函數),因爲它不可訪問。

,因爲它說here

...確保該類聲明爲public ...

您發佈的類是不公開的,所以把它公開。

+0

這是一個好主意,即時通過 11-26 12:31:30.336:錯誤/ AndroidRuntime(1893):java.lang.RuntimeException:無法啓動服務[email protected]與意圖{ cmp = unjustentertainment.com/.MusicService}:java.lang.NullPointerException –

+0

提供完整的堆棧跟蹤,NullPointerExeption來自哪裏? – Asher

+0

INFO/ActivityManager(59):啓動proj unjustentertainment.com服務unjustentertainment.com/.MusicService:pid = 1893 uid = 10036 gids = {1015} 2:31:30.286:DEBUG/AndroidRuntime(1893):關閉虛擬機 12:31:30.286:WARN/dalvikvm(1893):threadid = 1:以未捕獲的異常退出(組= 0x4001d800) 12:31:30.336:ERROR/AndroidRuntime(1893):致命異常:主要 12:31 :30.336:錯誤/ AndroidRuntime(1893):java.lang.RuntimeException:無法啓動服務[email protected]與意圖{cmp = unjustentertainment.com/.MusicService}:java.lang。NullPointerException –

2

您需要公開您的課程。 即

public class MusicService extends Service implements OnCompletionListener { 
      MediaPlayer mediaPlayer; 
      String musicFile; 
+0

檢查我對上述回答的意見 –

+0

堆棧跟蹤您提供的是部分。請提供完整的堆棧跟蹤。不要把它放在評論中(那裏沒有足夠的空間)。編輯您的原始帖子。 – Asher