android mediaplayer start in状态错误

时间:2016-01-31 05:42:05

标签: android android-mediaplayer android-button ontouchlistener

final MediaPlayer buttononclick = MediaPlayer.create(this, soundtrack);
            ImageButton tempbutton = (ImageButton) findViewById(i);
            tempbutton.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    switch (event.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            try {
                                if (buttononclick != null) {
                                    buttononclick.start();
                                }
                            } catch (IllegalStateException e) {
                                e.printStackTrace();
                            }
                            break;
                        case MotionEvent.ACTION_UP:
                            buttononclick.stop();
                            return true;
                    }
                    return true;
                }
            });

我一直在研究按钮,当我点击按钮时可以发出声音,当我松开按钮时停止声音。如果我再次点击按钮,声音将从钢琴开始。但错误显示:状态64并开始调用状态0错误。

01-31 13:32:01.526  13888-13888/com.cambo.liyuan.projectcombo E/MediaPlayer﹕ start called in state 64
01-31 13:32:01.526  13888-13888/com.cambo.liyuan.projectcombo E/MediaPlayer﹕ error (-38, 0)
01-31 13:32:01.526  13888-13888/com.cambo.liyuan.projectcombo E/MediaPlayer﹕ Error (-38,0)
01-31 13:32:01.892  13888-13888/com.cambo.liyuan.projectcombo E/MediaPlayer﹕ stop called in state 0
01-31 13:32:01.892  13888-13888/com.cambo.liyuan.projectcombo E/MediaPlayer﹕ error (-38, 0)

01-31 13:32:01.892 13888-13888 / com.cambo.liyuan.projectcombo E / MediaPlayer:错误(-38,0)

我一直在查看媒体播放器的状态图,并尝试在stackflow上发布的几种方法使其正常工作,但是如果我在st之前检查isPlaying()或者在启动ect之前设置prepare(),它会一直存在错误或者非法状态错误。 ... 有人说在停止后将玩家分配为null但它是最终变量。 如果可以帮助我找出实现此功能的正确方法,我将非常感谢。 谢谢。

1 个答案:

答案 0 :(得分:0)

buttononclick.stop();

之后试试

buttononclick.reset();
buttononclick.release();

你很高兴。