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 に答える