2017-10-24 14 views
0

예, 게시하기 전에 답을 검색했습니다. :)어색함이없는 짧은 음색

메이드 보드 게임에서 각 조각은 주사위를 굴린 다음 사각형에 단계적으로 이동합니다. 짧은 경고음과 함께 각 단계를 수행하고 싶었습니다. 메소드 "삑();"을 추가했습니다. 화면에 조각의 위치를 ​​이동시키는 핸들러에 놓습니다.

삐 소리를 추가하면(); 게임은 몇 가지 동작을하고 보고서 나 오류 메시지없이 간단하게 멈 춥니 다. 화면에서보기가 닫히고 대화 상자에 "불행히도 BoardLS가 [Ok]를 (를) 중지했습니다.

경고음()을 제거하면; 게임은 괜찮습니다.

삐 소리가 게임을 어떻게 부수고 그것을 피하는 지 아는 사람이라면 가능한 한 간단하게 말해주십시오. 감사.

private void beep() { 
    ToneGenerator beepSound = new ToneGenerator(AudioManager.STREAM_MUSIC, 60); 
    beepSound.startTone(ToneGenerator.TONE_PROP_BEEP, 75); 
} // Short sound 

와 내가 같이 호출 :

private final Handler playMove = new Handler() { 
    @Override 
    public void handleMessage(Message playMsg) { 
     beep(); 
     player.setX(pcX[playPos]); 
     player.setY(pcY[playPos]); 
    } 
}; // Put Player piece to new coordinates 

playPos을 조각 또는 것 평방 수가 크면

PCX와 여기

내가 경고음을 만든 방법 pcY는 화면 좌표가 정사각형 인 배열입니다.

핸들러는 MainActivity에

과 함께 playMove.sendEmptyMessage AsyncTask를 호출 (0);

AsyncTask는 전역 변수와 직접 작동하므로 문제가 없습니다.

+2

logcat에 스택 추적이 있어야합니다. –

답변

0

release() 방법을 사용하여 ToneGenerator 개체를 생성했습니다.

private void beep() { 
     ToneGenerator beepSound = new ToneGenerator(AudioManager.STREAM_MUSIC, 60); 
     beepSound.startTone(ToneGenerator.TONE_PROP_BEEP, 75); 
     beepSound.release(); 
    } 
+0

감사합니다. 그리고 단순성에 감사드립니다. – Sinisa

+0

도와 주셔서 감사합니다 :) – keshav