2012-02-05 50 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