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 に答える