gpt4 book ai didi

android - 我可以将 exoplayer 缓冲数据发送到其他 Activity exoplayer

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:20:57 28 4
gpt4 key购买 nike

我有一个 exoplayer 我的第一个 Activity ,当我点击全屏按钮时,我打开一个新的 VideoActivity 全屏。我只发送我当前的位置并在该位置启动 VideoActivity。

  TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(context, trackSelector);

playerView.setPlayer(player);
player.prepare(contentMediaSource);
player.setPlayWhenReady(true);
player.seekTo(positionFromFirstActivity);

但问题是何时打开新 Activity 并从当前位置启动 exoplayer。 Exoplayer 再次开始缓冲。

有什么办法可以把缓冲数据携带到SecondActivity。

最佳答案

现在回答这个问题可能为时已晚,但这可能会帮助其他人。

如果你想为 exoplayer 实现全屏功能,不要通过单独的 Activity 来实现,你只需要打开一个对话框,在整个屏幕上进行高度和宽度数学运算,只需要添加你正在使用的播放器 View 对于“非全屏”exoplyer。

mFullScreenButton.setOnClickListener(v -> {
if (!mExoPlayerFullscreen) {
((Activity) mContext).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
openFullscreenDialog();
} else {
((Activity) mContext).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
closeFullscreenDialog();
}
});

这里我们为全屏按钮初始化 onClick

private void openFullscreenDialog() {
((ViewGroup) playerView.getParent()).removeView(playerView);
mFullScreenDialog.addContentView(playerView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
mFullScreenIcon.setImageResource(R.drawable.ic_exit_fullscreen);
mExoPlayerFullscreen = true;
mFullScreenDialog.show();
}

以上是调用全屏按钮匹配屏幕时调用的方法。下面是取消全屏的方法。

private void closeFullscreenDialog() {
((ViewGroup) playerView.getParent()).removeView(playerView);
((FrameLayout) findViewById(R.id.main_media_frame)).addView(playerView);
mExoPlayerFullscreen = false;
mFullScreenDialog.dismiss();
mFullScreenIcon.setImageResource(R.drawable.ic_fullscreen);
}

下面是初始化对话框的代码 fragment 。

mFullScreenDialog = new Dialog(mContext, android.R.style.Theme_Black_NoTitleBar_Fullscreen) {
public void onBackPressed() {
if (mExoPlayerFullscreen) {
closeFullscreenDialog();
}
super.onBackPressed();
}
};

关于android - 我可以将 exoplayer 缓冲数据发送到其他 Activity exoplayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52538973/

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