2012-07-13 62 views
0

我的應用程序旨在按照一些數學公式有節奏地播放一些聲音。在這個項目中的其他平臺上開發的其他版本我只是「休眠」線程需要的,直到我需要發揮的下一個聲音,但在Android的時候,如果你睡眠過程中的UI睡覺爲好。我試了下代碼爲例,試圖將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(); 
     } 
    } 
} 

該類啓動媒體播放器有一個例子聲音和活動的背景下正在調用它,它應該發揮R.raw.ex每一秒。但是當我從我的活動中調用它時,我聽到聲音播放正確,但我的設備認爲該應用程序已凍結。

非常感謝。

回答

1

對於這個特定的應用,如果你不需要播放控制,你可以只是包裝的代碼了該位在AsyncTask

如果您希望能夠控制播放,那麼你應該implement a Service

+0

這可能不會如上班'AsyncTask'將在隊列延遲通過足夠的音頻是明顯的(所以未能播放聲音有節奏的要求)付諸表決。 – kabuko 2012-07-13 01:17:02

+0

是的,我一直在閱讀這個課程,主要問題是聲音要求有點過時。但非常感謝。 – 2012-07-13 01:19:47

相關問題