2013-03-23 104 views
0

我越来越紧张...有人可以告诉我,为什么下面的代码不想工作?从android中的服务在背景中播放音乐

public class MyService extends Service { 

    private MediaPlayer player; 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 

     player = MediaPlayer.create(this, R.raw.audio); 
     player.setWakeMode(getApplicationContext(), 
       PowerManager.PARTIAL_WAKE_LOCK); 
     player.setVolume(1f, 1f); 
     player.start(); 

//other stuff here, which run perfectly... 

音频文件在那里,我有wakelock权限(没有它不工作...)。没有错误信息,其余的代码都很好,但.......播放器没有播放任何内容。 请在我的脑中捕捉血管之前帮助我!

编辑:一些更多的信息: 的音频的mp3格式,77KB/s的

+0

@keybee ..你是否观察到'logcat'中的任何错误。你能否也粘贴你的错误日志? – Ganesh 2013-03-24 00:23:58

+0

当然,我会尽快回家,但没有错误。 – keybee 2013-03-24 07:26:57

+0

我不能相信它......解决方案:它需要写成这样:'MediaPlayer p = Mediaplayer.create(this,filename)'因为p.create会调用静态方法,并且它会返回一个新的实例一个从不存储的MediaPlayer。然后,我在默认构造的实例上调用start()... – keybee 2013-03-24 07:46:03

回答

0

的解决方案:它需要这样写:MediaPlayer p = Mediaplayer.create(this, filename),因为p.create将调用静态方法,它将返回一个MediaPlayer的新实例,永不存储。然后,我在默认构造的实例上调用start(),这就是为什么它不起作用。