应用程序中的短音而不会崩溃
short tone in app without crashing it
是的,我在发布之前确实搜索了答案。 :)
制作棋盘游戏,每块棋子掷骰子,然后在方块上一步步移动。想要用短促的哔哔声跟随每一步。添加方法 "beep();" 并将其放置在移动屏幕上棋子位置的处理程序中。
当我添加beep();游戏运行了几个动作然后就停止了,没有任何报告或错误信息。屏幕上的视图关闭,对话框只显示 "Unfortunately, BoardLS has stopped [Ok]",没有其他任何反应。
当我移除 beep() 时;游戏正常。
请,如果有人知道哔哔声是如何使游戏崩溃的,以及如何避免它,请尽可能简单地告诉我。谢谢
这是我发出提示音的方式:
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(0) 从 AsyncTask 调用;
AsyncTask 直接使用全局变量,在这里没有问题。
刚刚释放使用 release()
方法创建的 ToneGenerator
个对象。
private void beep() {
ToneGenerator beepSound = new ToneGenerator(AudioManager.STREAM_MUSIC, 60);
beepSound.startTone(ToneGenerator.TONE_PROP_BEEP, 75);
beepSound.release();
}
是的,我在发布之前确实搜索了答案。 :)
制作棋盘游戏,每块棋子掷骰子,然后在方块上一步步移动。想要用短促的哔哔声跟随每一步。添加方法 "beep();" 并将其放置在移动屏幕上棋子位置的处理程序中。
当我添加beep();游戏运行了几个动作然后就停止了,没有任何报告或错误信息。屏幕上的视图关闭,对话框只显示 "Unfortunately, BoardLS has stopped [Ok]",没有其他任何反应。
当我移除 beep() 时;游戏正常。
请,如果有人知道哔哔声是如何使游戏崩溃的,以及如何避免它,请尽可能简单地告诉我。谢谢
这是我发出提示音的方式:
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(0) 从 AsyncTask 调用;
AsyncTask 直接使用全局变量,在这里没有问题。
刚刚释放使用 release()
方法创建的 ToneGenerator
个对象。
private void beep() {
ToneGenerator beepSound = new ToneGenerator(AudioManager.STREAM_MUSIC, 60);
beepSound.startTone(ToneGenerator.TONE_PROP_BEEP, 75);
beepSound.release();
}