首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止MediaPlayer

停止MediaPlayer
EN

Stack Overflow用户
提问于 2013-02-02 06:12:56
回答 2查看 2.1K关注 0票数 1

我做了一个android应用程序,你可以点击按钮来播放声音。每次你点击按钮,一个新的MediaPlayer就会被创建,问题是,当你在另一个声音还在播放的时候按下一个按钮,它们是同时播放的,但我想要的是,当你按下一个按钮时,以前的声音就会停止。我已经尝试过这段代码,但每次我按下按钮时,我的应用程序都会崩溃:

代码语言:javascript
复制
MediaPlayer mp;
Button button;

button = (Button) findViewById(R.id.button);

button.setOnClickListener(new OnClickListener() {


        @Override
        public void onClick(View v) {

            if(mp.isPlaying()){

                mp.stop();

            }

            mp = MediaPlayer.create(getApplicationContext(), R.raw.sound);
            mp.start();

        }});

有没有办法解决我的问题?

EN

回答 2

Stack Overflow用户

发布于 2013-02-02 06:44:21

似乎启动太多MediaPlayer并不好,因为当我点击声音几次时,应用程序就会崩溃。我已经将mp.start更改为mp.reset和release。

票数 0
EN

Stack Overflow用户

发布于 2015-10-28 15:12:49

备注

  • 您必须在创建新播放器之前释放播放器
  • 我不会打赌isPlaying()检查会停止播放器;因为您不需要它,请释放它!

代码

代码语言:javascript
复制
    @Override
    public void onClick(View v) {

       if(mp != null) { 
           mp.release(); 
       }
       mp = MediaPlayer.create(getApplicationContext(), R.raw.sound);
       mp.start();

    }});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14655916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档