MediaPlayer 根本不工作

MediaPlayer not working at all

我是 Android 的初学者,我正在尝试让 MediaPlayer 正常工作,但我遇到了一些错误。

1-如果我再次点击播放,同时开始播放两次。

2-如果点击 puse,不会发生任何事情。

3-我打算做一个有播放、暂停和停止的再现列表。

提前致谢。

package com.example.android.allmusic;

import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;
import android.media.MediaPlayer;

public class RomanticActivity extends AppCompatActivity {
    boolean firstSongBoolean;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_romantic);


        TextView firstSong = (TextView) findViewById(R.id.first_song);
        firstSong.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.primero);
                if (!mp.isPlaying()) {mp.start();}
            }
        });

        ImageView firstSongPause = (ImageView) findViewById(R.id.first_song_pause);
        firstSongPlay.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.primero);
                if (mp.isPlaying()) { mp.pause(); }
            }
        });
    }
}

尝试将您的 MediaPlayer 声明为成员变量,将其设置在您的 onCreate 上应该就足够了,但只需将其声明为您的 class 的属性即可进行测试。

由于每次单击 ImageViewTextView 时都会创建对 MediaPlayer 的新引用,因此您不需要暂停它或知道它是否已经开始。


代码:

public class RomanticActivity extends AppCompatActivity {
    boolean firstSongBoolean;

    //MediaPlayer as a member variable
    private MediaPlayer mp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_romantic);

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

        TextView firstSong = (TextView) findViewById(R.id.first_song);
        firstSong.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                if (!mp.isPlaying()) {
                    mp.start();
                }
            }
        });

        ImageView firstSongPause = (ImageView) findViewById(R.id.first_song_pause);
        firstSongPlay.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                if (mp.isPlaying()) {
                    mp.pause();
                }
            }
        });
    }
}