0

我的应用程序旨在按照一些数学公式有节奏地播放一些声音。在为其他平台开发的该程序的其他版本中,我只是“休眠”线程所需的时间,直到我需要播放下一个声音,但在 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。但是当我从我的活动中调用它时,我听到声音播放正确,但我的设备认为应用程序已冻结。

非常感谢。

4

1 回答 1

1

对于这个特定的应用程序,如果您不需要播放控制,您可以将那段代码包装在AsyncTask中。

如果您希望能够控制播放,那么您应该实现一个 Service

于 2012-07-13T01:13:28.893 回答