java我无法在ExoPlayer中关闭音频播放!空指针异常
我面临一个问题:我无法关闭音频播放
这是一个错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.安卓.exoplayer2.SimpleExoPlayer.stop()' on a null object reference
at com.dglasmann.radioapp.MainActivity.lambda$onCreate$1$MainActivity(MainActivity.java:37)
以下是主要活动的代码。爪哇:
public class MainActivity extends AppCompatActivity {
SimpleExoPlayer simpleExoPlayer;
Button btn, btn2;
boolean isplaying;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
isplaying = false;
btn = findViewById(R.id.btn);
btn.setOnClickListener(v -> {
if (!isplaying) {
initplayer();
isplaying = true;
}
});
btn2 = findViewById(R.id.btn2);
btn2.setOnClickListener(v -> {
if (isplaying) {
simpleExoPlayer.stop();
}
});
}
public void initplayer() {
SimpleExoPlayer simpleExoPlayer = new SimpleExoPlayer.Builder(this).build();
DataSource.Factory datasourcefactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this,"app"));
MediaSource audiosource = new ProgressiveMediaSource.Factory(datasourcefactory).createMediaSource(Uri.parse("https://stream.audioxi.com/SW"));
simpleExoPlayer.prepare(audiosource);
simpleExoPlayer.setPlayWhenReady(true);
}
@Override
protected void onDestroy() {
super.onDestroy();
simpleExoPlayer.release();
}
@Override
protected void onPause() {
simpleExoPlayer.release();
super.onPause();
}
public void pause() {
simpleExoPlayer.setPlayWhenReady(false);
}
}
当我调用btn2时出现错误。setOnClickListener。我知道我指的是另一个SimpleXoPlayer,它不是“initplayer”函数,所以我有这个错误。但我不知道如何引用simpleExoPlayer,函数“initplayer”包含哪些内容。 如果我不按btn2,它可以正常工作
# 1 楼答案
您正面临此错误,因为在initplayer()中,您正在创建ExoPlayer的新实例。因此,要解决这个问题,只需将您的initplayer更改为: