【问题标题】:Random audio button stops working after set amount of clicks随机音频按钮在设定的点击次数后停止工作
【发布时间】:2013-09-07 12:10:27
【问题描述】:

我有点问题,基本上我目前只有一个按钮设置来播放各种声音,每次点击都会播放随机声音。这很好,但是在点击了一定数量的按钮后,它等于我播放的声音文件的数量,它不再播放了。很难理解为什么会发生这种情况以及解决它的方法。

private final int SOUND_CLIPS = 11;
private int mfile[] = new int[SOUND_CLIPS];
private Random rnd = new Random();
MediaPlayer mpButtonOne;

    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //I list all my sounds files here, removed for sake of saving space.        

    Button bButtonOne = (Button) findViewById(R.id.button1);
    bButtonOne.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mpButtonOne = MediaPlayer.create(myMenu.this, mfile[rnd.nextInt(SOUND_CLIPS)]);
            mpButtonOne.seekTo(0);
            mpButtonOne.start();
            }
    });
    }
 }

所有这些代码都执行我想要它做的事情,即在每次按钮单击时从剪辑列表中播放一个随机声音剪辑,但它似乎只执行了一定次数,然后停止播放任何内容。任何帮助将不胜感激。

【问题讨论】:

  • 它停了多少次?你为什么在打电话之前打电话给seekTo(0)?此外,在它停止播放声音后,当您按下按钮时,它是否会在 logcat 中显示任何消息?
  • 它在大约 11 次点击后停止播放,这是我存储的要播放的剪辑数量,不,我在 logcat 中没有收到任何消息。
  • 在它播放的 11 个剪辑中,它是否会重复一个已经播放过的剪辑?还是每次都播放所有 11 个不同的剪辑,只是顺序不同?
  • 它会重复已经播放过的片段,所以不仅是 11 次,而且顺序不同。

标签: java android


【解决方案1】:

您是否随时发布 MediaPlayer?您似乎每次点击都在创建一个新的,并且永远不会释放它。最终你可能会耗尽资源。

阅读有关发布 MediaPlayer 的部分:

http://developer.android.com/guide/topics/media/mediaplayer.html

基本上你想实现一个 onCompletionListener 并将它注册到你的 MediaPlayer,然后在那里进行清理:

mpButtonOne.setOnCompletionListener(new SoundCompletionListener());


    private class SoundCompletionListener implements OnCompletionListener{

    @Override
    public void onCompletion(MediaPlayer mp) {
        if(mp!=null){
            mp.release();
            mp=null;
        }   
    }
}

【讨论】:

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