0

我有这种方法可以用按钮播放音频文件:

final MediaPlayer mediaplayer = MediaPlayer.create(
                    this,
                    Uri.parse("android.resource://" + getPackageName() + "/"
                            + R.raw.inro));
            mediaplayer.setOnPreparedListener(new OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    if (mediaplayer.isPlaying()) {
                        mediaplayer.pause();
                    } else {
                        mediaplayer.start();
                    }
                }
            });

我想要做的是,当音频正在播放并且用户再次单击该按钮时,音频将暂停,但当他再次单击它时,音频将恢复。

更新

@Override
    public void onClick(View v) {

        switch (v.getId()) {
        case R.id.btn_nav_back:
            WWHApplication.getMapActivityIntance().getVideoLocationDB();
            WWHApplication.getMapActivityIntance().initLocations();
            if (category == 'f') {
                if (WWHApplication.getFavoritesListActivityIntance() != null)
                    WWHApplication.getFavoritesListActivityIntance()
                            .loadListView();
            }
            finish();
            break;
        case R.id.btn_tool_audio:
            final MediaPlayer mediaplayer = MediaPlayer.create(this,
                    Uri.parse("android.resource://" + getPackageName() + "/"
                            + R.raw.inro));     
                    if (mediaplayer.isPlaying()) {
                        mediaplayer.pause();
                    } else {
                        mediaplayer.start();
                    }

            break;
4

1 回答 1

1

问题是您试图在 PreparedListener 上暂停音频。IT 不是这样工作的。在按钮单击事件中执行相同操作,

playButton.setOnClickListener(new OnClickListener() {
                @Override
        public void onClick(View v) {
       if (mediaplayer.isPlaying()) {
                    mediaplayer.pause();
                } else {
                    mediaplayer.start();
                }
                }
    });

仅当源准备好并且可以播放时才调用 Prepared Listener。它不能确保您的 MediaPlayer 的播放和暂停。

于 2012-05-22T14:33:42.070 回答