Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Exoplayer-如何在单击屏幕时仅显示控制按钮_Android_Exoplayer - Fatal编程技术网

Android Exoplayer-如何在单击屏幕时仅显示控制按钮

Android Exoplayer-如何在单击屏幕时仅显示控制按钮,android,exoplayer,Android,Exoplayer,当exoplayer启动时,如何隐藏这些媒体播放器控件。我只想在用户点击屏幕时显示它们 PlayerView playerView = findViewById(R.id.player_view); playerView.setControllerAutoShow(false); setControllerAutoShow不会在开始时显示媒体控制按钮,在类级别初始化播放机,如下所示 private SimpleExoPlayer player; private PlayerView playe

当exoplayer启动时,如何隐藏这些媒体播放器控件。我只想在用户点击屏幕时显示它们

PlayerView playerView = findViewById(R.id.player_view);
playerView.setControllerAutoShow(false);

setControllerAutoShow不会在开始时显示媒体控制按钮,在类级别初始化播放机,如下所示

private SimpleExoPlayer player;
private PlayerView playerView;

private long playbackPosition;
private int currentWindow;
private boolean playWhenReady = true;
OnCreate
中初始化播放器

playerView = view.findViewById(R.id.video_view);
覆盖活动/片段中的此方法

@Override
public void onResume()
{
    super.onResume();
    hideSystemUi();
    if ((Util.SDK_INT <= 23 || player == null)) {
        initializePlayer();
    }
}

@Override
public void onPause()
{
    super.onPause();
    if (Util.SDK_INT <= 23) {
        releasePlayer();
    }
}

@Override
public void onStop()
{
    super.onStop();
    if (Util.SDK_INT > 23)
    {
        releasePlayer();
    }
}

你能描述一下这段代码在做什么,它是如何回答这个问题的吗?
private void initializePlayer()
{
    if (player == null)
    {
        // a factory to create an AdaptiveVideoTrackSelection
        TrackSelection.Factory adaptiveTrackSelectionFactory =
                new AdaptiveTrackSelection.Factory(BANDWIDTH_METER);
        // let the factory create a player instance with default components
        player = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(getActivity()),
                new DefaultTrackSelector(adaptiveTrackSelectionFactory), new DefaultLoadControl());
        playerView.setPlayer(player);
        player.setPlayWhenReady(playWhenReady);
        player.seekTo(currentWindow, playbackPosition);
    }
    MediaSource mediaSource = buildMediaSource(Uri.parse(getString(R.string.media_url_dash)));
    player.prepare(mediaSource, true, false);
}

private void releasePlayer()
{
    if (player != null)
    {
        playbackPosition = player.getCurrentPosition();
        currentWindow = player.getCurrentWindowIndex();
        playWhenReady = player.getPlayWhenReady();
        player.release();
        player = null;
    }
}

private MediaSource buildMediaSource(Uri uri)
{
    DashChunkSource.Factory dashChunkSourceFactory = new DefaultDashChunkSource.Factory(
            new DefaultHttpDataSourceFactory("ua", BANDWIDTH_METER));
    DataSource.Factory manifestDataSourceFactory = new DefaultHttpDataSourceFactory("ua");
    return new DashMediaSource.Factory(dashChunkSourceFactory, manifestDataSourceFactory).
            createMediaSource(uri);
}

@SuppressLint("InlinedApi")
private void hideSystemUi()
{
    playerView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}