2012-02-05 2 views
1

앱이 배경에있을 때 멀티미디어 사운드가 들리기 때문에 앱에 문제가 있습니다.앱이 일시 중지되었을 때 소리가납니다.

나는 내 미디어 플레이어를 이와 같이 정의했습니다.

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

하지만 내가 노력하고 올바르게 MediaPlayer.Stop()

를 호출 할 수 없습니다입니다 : PlayLocalAudio를 호출

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

내가 할 그것을

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

그러나 작동하지 않습니다. 당신이 나를 도울 수?

답변

1

귀하의 코드에 귀하의 예제에서 보이지 않는 클래스 변수 mediaPlayer가 있다고 생각합니다. 이 경우 playLocalAudio에 새 mediaPlayer를 인스턴스화하고 해당 인스턴스가 pause 메서드 내부에 표시되지 않으므로 가변 섀도우가 적용됩니다. 그래서 멈추지 않는다. playLocalAudio의 선언에서 MediaPlayer 클래스 이름을 제거합니다.

+0

+1 정답은 아직 보았지만 분명히 알 수 있습니다. – MByD

+0

아니요, mediaPlayer에 대한 다른 정의가 없습니다 – user1006082

+0

변수 mediaPlayer는 로컬 메소드입니다. mediaplayer에 대한 다른 선언이 없으면 mediaplayer.stop()이 컴파일되지 않습니다. P와 p의 차이가 오타라고 가정합니다. – DrA

관련 문제