2011-11-26 60 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

相关问题