0

我想播放 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();
4

3 回答 3

2

尝试从您的代码中删除这一行

player.setLooping(true);
于 2012-08-16T12:46:33.220 回答
2

使用带有延迟的 Runnable 来停止您的音频。

postDelayed(new Runnable() {
    public void run() {
        //Code to stop your sound
    }
}, 5000);
于 2012-08-16T12:46:37.867 回答
1

创建一个新的处理程序来发布何时停止的延迟。

            mMediaPlayer.start();
            // wait 5 sec... then stop the player.
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    mMediaPlayer.stop();
                }
            }, 5000);//millisec.
于 2013-05-14T20:32:47.697 回答