如何将浮动操作按钮连接到Android项目中的活动

时间:2020-05-06 06:26:09

标签: java android android-studio android-layout debugging

我不确定我错过了什么,我希望playPauseButton在单击时能够响应,但是什么都没有发生。我在调试控制台日志中发现了一些错误,这些错误主要与mediaPlayer有关,但是我不完全知道它们的含义,因为这是android编程的新手!以下是我的调试控制台日志以及一些相关代码:

// Removed Logcat!!

与Player.java类相关的一些代码:

import android.media.MediaPlayer;
import android.media.AudioManager;
import android.util.Log;

import java.io.IOException;

public class Player {

    // Creating new MediaPlayer

    MediaPlayer mediaPlayer = new MediaPlayer();

    // Creating a public static player as reference to this Player class

    public static Player player;
    String url = "";

    public Player () {
        this.player = this;
    }

    public void playStream (String url) {
        if (mediaPlayer != null) {
            try {
                mediaPlayer.stop();
            } catch (Exception e) {

            }

            // Releasing everything from the mediaPlayer

            mediaPlayer = null;
        }

        // Creating new Media Player

        mediaPlayer = new MediaPlayer();
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

        // Try & Catch errors

        try {
            mediaPlayer.setDataSource(url);
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mediaPlayer.start();
                }
            });
            mediaPlayer.prepareAsync();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void pausePlayer () {
        try {
            mediaPlayer.pause();
        } catch (Exception e) {
            Log.d("EXCEPTION", "Failed to pause Media Player");
        }
    }

    public void playPlayer () {
        try {
            mediaPlayer.start();
        } catch (Exception e) {
            Log.d("EXCEPTION", "Failed to start Media Player");
        }
    }

    public void togglePlayer () {
        try {
            if (mediaPlayer.isPlaying())
                pausePlayer();
            else
                playPlayer();
        } catch (Exception e) {
            Log.d("Exception", "Failed to toggle Media Player");
        }
    }
}

MainActivity.java中的其他相关代码

public class MainActivity extends AppCompatActivity {
    static FloatingActionButton playPauseButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        playPauseButton = (FloatingActionButton) findViewById(R.id.fab);
        playPauseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });

        // Songs location on our server

        String url = // "*My website/file.mp3";

        // Passing above url to our MediaPlayer

        if (Player.player == null)
            new Player();
        Player.player.playStream(url);
    }

    public static void flipPlayPauseButton (boolean isPlaying) {
        if (isPlaying) {
            playPauseButton.setImageResource(android.R.drawable.ic_media_pause);
        } else {
            playPauseButton.setImageResource(android.R.drawable.ic_media_play);
        }
    }

1 个答案:

答案 0 :(得分:1)

尝试例如:

  playPauseButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
if(video.isplaying()){pause function()}
else{play function()}

                }
            });