2012-08-16 60 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.