2012-02-05 45 views
1

我有我的应用程序的问题,因为多媒体听到声音时,应用程序在后台应用程序声音来自当它被暂停

我定义我的媒体播放器这样的;

private void playLocalAudio(int R1)throws Exception 
{ 
MediaPlayer mediaPlayer = MediaPlayer.create(this,R1); 
mediaPlayer.start(); 
} 

唤起PlayLocalAudio我做的:

try{ 
    playLocalAudio(R.raw.fartw1); 
} 
catch (Exception e) { 
e.printStackTrace(); 
} 
}}); 

但我不能够正确地调用MediaPlayer.Stop()

我想:

public void onPause() 
{ 
super.onPause(); 
mediaplayer.stop(); 
} 

但不起作用。你可以帮帮我吗?

回答

1

我猜你的代码有一个类变量mediaPlayer,在你的例子中不可见。在这种情况下,您有可变阴影,因为您正在playLocalAudio中实例化一个新的mediaPlayer,并且该实例在暂停方法中不可见。所以停下来不会被叫到。从playLocalAudio中的声明中移除MediaPlayer类名称。

+0

+1正确的答案,因为我看到它,但一个例子会使它更清晰。 – MByD 2012-02-05 08:03:59

+0

不,我没有mediaPlayer的其他定义 – user1006082 2012-02-16 05:46:58

+0

变量mediaPlayer是方法本地的。如果您没有mediaplayer的另一个声明,则mediaplayer.stop()不会编译。我假设P和P之间的差异是一个错字? – DrA 2012-07-12 20:35:51