2012-08-16 98 views
0

我想播放聲音5秒鐘,但我正在使用的代碼是無限播放聲音。如何播放聲音5秒鐘

我的代碼是

final MediaPlayer player = new MediaPlayer(); 
AssetFileDescriptor afd = this.getResources().openRawResourceFd(R.raw.hangout_ringtone); 
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 
afd.close(); 
player.setAudioStreamType(AudioManager.STREAM_ALARM); 
player.setLooping(true); 
player.prepare(); 

回答

2

嘗試從您的代碼

player.setLooping(true); 
+0

感謝它的工作原理 – swati 2012-08-16 12:53:42

+0

@swati如果問題解決,那麼請點擊接受複選框:) – Anton 2012-08-16 12:57:13

2

使用一個Runnable與延遲停止音頻刪除此行。

postDelayed(new Runnable() { 
    public void run() { 
     //Code to stop your sound 
    } 
}, 5000); 
+0

我應該在哪裏寫的代碼 – swati 2012-08-16 12:50:00

+0

我不知道你張貼在上下文中的代碼,但你可能會在任何視圖或任何處理程序上調用postDelayed。 – 2012-08-16 12:56:26

1

創建一個新的處理程序,以發佈何時停止的延遲。

  mMediaPlayer.start(); 
      // wait 5 sec... then stop the player. 
      new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        mMediaPlayer.stop(); 
       } 
      }, 5000);//millisec.