如何解决当应用程序进入后台时,回收者视图中的 Exoplayer 继续播放
这是我的 exoplayer 在回收器视图中的实现。我希望 exoplayer 在应用程序进入后台时停止。
protected void onBindViewHolder(@NonNull AudioModelHolder holder,int position,@NonNull AudioModel model) {
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setUsage(C.USAGE_MEDIA)
.setContentType(C.CONTENT_TYPE_MUSIC)
.build();
holder.textViewTitle.setText(model.getTitle());
player = new SimpleExoPlayer.Builder(context).build();
player.setAudioAttributes(audioAttributes,true);
holder.playerView.setPlayer(player);
holder.playerView.setShutterBackgroundColor(Color.WHITE);
MediaItem mediaItem = MediaItem.fromUri(model.getUrl());
player.setMediaItem(mediaItem);
player.setPlayWhenReady(false);
player.prepare();
}
音频片段
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_audio,container,false);
MobileAds.initialize(getActivity(),initializationStatus -> {
});
AdView mAdView = view.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
Query query = FirebaseFirestore.getInstance()
.collection("audios");
FirestoreRecyclerOptions<AudioModel> options = new FirestoreRecyclerOptions.Builder<AudioModel>()
.setQuery(query,AudioModel.class)
.build();
adapter = new AudioAdapter(options,getActivity());
RecyclerView recyclerView = view.findViewById(R.id.audio_recycler);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setAdapter(adapter);
return view;
}
@Override
public void onStart() {
super.onStart();
adapter.startListening();
}
我在选项卡布局中使用此播放器。进入后台时播放器布局会重置,但音频会继续播放。
解决方法
你应该在应用程序进入后台时停止视频播放,recyclerview 和应用程序不会处理这个
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。