gpt4 book ai didi

java - 无法在空对象引用上停止 exoplayer : . ..SimpleExoPlayer.stop()'

转载 作者:行者123 更新时间:2023-12-02 01:17:37 26 4
gpt4 key购买 nike

我正在为我的 Android 应用程序使用 exoplayer,除了我无法停止流之外,它也工作得很好。我有一个 stopplaying 方法,但它向我抛出错误,即播放器为空。

MainActivity.java

    public void onClick(View v) {
if (v == buttonPlay) {
startPlaying();
} else if (v == buttonStopPlay) {
stopPlaying();
}
}
public void initMediaPlayer(){
context=MainActivity.this;

Uri uri = Uri.parse("http://stream.mp3");
DataSource.Factory dataSourceFactory =
new DefaultHttpDataSourceFactory(Util.getUserAgent(context, "BoomBoxBeilstein"));
MediaSource MediaSource =
new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(context, new DefaultTrackSelector());;
player.prepare(MediaSource);
wl.acquire();
wfl.acquire();
player.setPlayWhenReady(true);
}

public void startPlaying() {

buttonStopPlay.setEnabled(true);
buttonPlay.setEnabled(false);

playSeekBar.setVisibility(View.VISIBLE);
super.onStart();
initMediaPlayer();
};

public void stopPlaying() {
super.onStop();

player.stop();
wl.release();
wfl.release();


buttonPlay.setEnabled(true);
buttonStopPlay.setEnabled(false);
playSeekBar.setVisibility(View.INVISIBLE);
}

}

我尝试了这个,但我不断收到错误:

```java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.exoplayer2.SimpleExoPlayer.stop()' on a null object reference

我也尝试过同样的操作

player.release();

结果相同

最佳答案

在您的方法 initMediaPlayer() 中,您正在创建新对象 SimpleExoPlayer player = ... ,它存储在局部变量中,但在方法 stopPlaying() 中 您在名为 player 的字段上调用方法 stop() ,该字段为空,因为您从未将player 实例分配给该字段。所以解决方案是这两个中的任何一个:

  • initMediaPlayer() 方法末尾将局部变量分配给字段:this.player = player;
  • 不要使用局部变量SimpleExoPlayer player并将创建的播放器直接分配给字段,而不是
SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(context, new DefaultTrackSelector());

使用

player = ExoPlayerFactory.newSimpleInstance(context, new DefaultTrackSelector());

关于java - 无法在空对象引用上停止 exoplayer : . ..SimpleExoPlayer.stop()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58293550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com