Java 如何将浮动操作按钮连接到Android项目中的活动
我不确定我在哪里错过了什么,我希望playPauseButton在我点击时会响应,但当我点击时什么也没发生。我注意到我的调试控制台日志中有一些错误,这些错误主要与mediaPlayer有关,但我不知道它们到底是什么意思,因为android编程还很新!下面是我的调试控制台日志和一些相关代码:Java 如何将浮动操作按钮连接到Android项目中的活动,java,android,android-studio,android-layout,debugging,Java,Android,Android Studio,Android Layout,Debugging,我不确定我在哪里错过了什么,我希望playPauseButton在我点击时会响应,但当我点击时什么也没发生。我注意到我的调试控制台日志中有一些错误,这些错误主要与mediaPlayer有关,但我不知道它们到底是什么意思,因为android编程还很新!下面是我的调试控制台日志和一些相关代码: // Removed Logcat!! 与类Player.java相关的一些代码: import android.media.MediaPlayer; import android.media.Audio
// 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);
}
}
例如:
playPauseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(video.isplaying()){pause function()}
else{play function()}
}
});
好的,我要感谢MohammadMoeinGolchin,他帮助我解决了这个问题。碰巧我没有在我的公共void onClik(视图)函数中完成我的函数。但您将看到它是在一个单独的Player.java类中编写的。为了解决这个问题,我所做的是在onClick(视图)中调用togglePlayer()函数,如下所示:
@Override
public void onClick (View view) {
Player.player.togglePlayer();
}
请附加错误,不是所有日志好的,让我现在编辑一下!给你,MohammadMoeinGolchin!关于如何显示错误日志,请参见此处:您没有特定的错误,问题是什么?欢迎您,这是正确的,但您正在调用togglePlayer函数,您应该在该函数中设置命令。