【问题标题】:Playing sound only once只播放一次声音
【发布时间】:2014-10-14 16:32:21
【问题描述】:

我正在尝试只播放一次警报声:

    Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);

    final MediaPlayer mMediaPlayer = new MediaPlayer();
    mMediaPlayer.setDataSource(ctx, notification);
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
    mMediaPlayer.prepare();
    mMediaPlayer.setLooping(false);

    mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        public void onPrepared(MediaPlayer arg0) {
            mMediaPlayer.seekTo(0);
            mMediaPlayer.start();
        }
    });

但声音会无休止地播放,尽管 'setLooping' 设置为 false。 我还能做些什么来让声音不循环播放?

【问题讨论】:

    标签: android audio notifications android-mediaplayer


    【解决方案1】:

    电话:

    mMediaPlayer.prepare();
    

    是对文件的阻塞调用,所以你真的不需要监听器,你可以直接调用:

    mMediaPlayer.start();
    

    紧随其后。 它也从时间 0 开始,所以你不需要:

    mMediaPlayer.seekTo(0);
    

    关于无休止的玩,你可以在这里找到解释和解决方案:

    android mediaplayer loops forever on ICS

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多