我的应用程序旨在按照一些数学公式有节奏地播放一些声音。在为其他平台开发的该程序的其他版本中,我只是“休眠”线程所需的时间,直到我需要播放下一个声音,但在 android 中,如果您休眠进程,UI 也会休眠。我尝试下一段代码作为示例,尝试将 UI 和声音过程分开:
public class SoundThread extends Thread{
private MediaPlayer player;
SoundThread(Context context)
{
player = MediaPlayer.create(context, R.raw.ex);
}
public void run()
{
for(int x=0;x<100;x++)
{
player.start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
此类以示例声音和调用它的活动的上下文启动 mediaplayer,它应该每秒播放 R.raw.ex。但是当我从我的活动中调用它时,我听到声音播放正确,但我的设备认为应用程序已冻结。
非常感谢。