gpt4 book ai didi

android - 退出 Activity android时停止播放exo播放器视频

转载 作者:行者123 更新时间:2023-11-29 19:02:18 25 4
gpt4 key购买 nike

我正在使用 Exo-Player。我的视频播放正常,但是当我按下后退按钮并退出 Activity 时,我的视频继续在后台播放。我不知道如何在 Activity 结束后停止播放。请帮忙

这是我在回收器 View 适配器中的 exo 播放器代码

 String my_date = data.get(position).getCreated_at();
String returneDate = setDateAndTime(my_date);
String img_url = data.get(position).getUser().getProfileUrl();
String videoUrl = data.get(position).getFile_url();

if (videoUrl != null) {
uri = Uri.parse(videoUrl);
} else {
holder.videoFrame.setVisibility(View.GONE);
}

holder.userVideoStatus.setText(data.get(position).getText());
holder.userNameVideoStatus.setText((CharSequence) data.get(position).getUser().getName());
holder.timeVideoStatus.setText(returneDate);

BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));
player = ExoPlayerFactory.newSimpleInstance(activity, trackSelector);

DefaultHttpDataSourceFactory defaultHttpDataSourceFactory = new DefaultHttpDataSourceFactory("exo player");
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
final MediaSource mediaSource = new ExtractorMediaSource(uri, defaultHttpDataSourceFactory, extractorsFactory, null, null);


holder.playVideo.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {

holder.playVideo.setVisibility(View.GONE);
holder.userVideoUpdate.setPlayer(player);
player.prepare(mediaSource);
player.setPlayWhenReady(true);
holder.volumeUp.setVisibility(View.VISIBLE);

return true;
}
});

最佳答案

好的 Pavel B. 给出了正确的答案,但我正在详细说明并使其更清楚......

适配器

public class ChatsAdapter extends RecyclerView {

public SimpleExoPlayer exoPlayer; // Do this at top

}

Activity

public class TestActivity extends AppCompatActivity {

private ChatsAdapter chatsAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);

chatsAdapter = new ChatsAdapter();

}

@Override
protected void onPause() {

super.onPause();
pausePlayer(chatsAdapter.exoPlayer);

}

@Override
protected void onStop() {

super.onStop();
pausePlayer(chatsAdapter.exoPlayer);

}

@Override
protected void onDestroy() {

super.onDestroy();
releaseExoPlayer(chatsAdapter.exoPlayer);
}

@Override
protected void onResume() {

super.onResume();
startPlayer(chatsAdapter.exoPlayer);
}

public static void startPlayer(SimpleExoPlayer exoPlayer) {

if (exoPlayer != null) {
exoPlayer.setPlayWhenReady(true);

}
}

public static void pausePlayer(SimpleExoPlayer exoPlayer) {

if (exoPlayer != null) {
exoPlayer.setPlayWhenReady(false);

}
}

public static void releaseExoPlayer(SimpleExoPlayer exoPlayer) {

if (exoPlayer != null) {
exoPlayer.release();

}

}
}

关于android - 退出 Activity android时停止播放exo播放器视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545997/

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