Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

how to add speed and quality changing options to player? #1152

Open
SureshTimma opened this issue Jun 27, 2024 · 4 comments
Open

how to add speed and quality changing options to player? #1152

SureshTimma opened this issue Jun 27, 2024 · 4 comments
Labels

Comments

@SureshTimma
Copy link

SureshTimma commented Jun 27, 2024

how to add speed and quality changing options to player?

there are speed and quality changing options in default iframe player

@SureshTimma SureshTimma changed the title how to speed and quality changing options to player? how to add speed and quality changing options to player? Jun 27, 2024
@SureshTimma
Copy link
Author

Screenshot 2024-06-27 230347

i want the settings icon in custom ui player control.

@SureshTimma
Copy link
Author

package com.app.abignaacademy.youtubeplayer;

import android.view.View;
import android.widget.ImageButton;
import android.widget.RelativeLayout;

import com.app.abignaacademy.R;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.customui.utils.FadeViewHelper;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.customui.views.YouTubePlayerSeekBar;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.customui.views.YouTubePlayerSeekBarListener;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.PlayerConstants;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.YouTubePlayer;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.listeners.AbstractYouTubePlayerListener;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.utils.YouTubePlayerTracker;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerView;

public class CustomPlayerUiController extends AbstractYouTubePlayerListener {
private final YouTubePlayerTracker playerTracker;
private final YouTubePlayer youTubePlayer;
private final YouTubePlayerView youTubePlayerView;
private boolean isFullScreen = false;

public CustomPlayerUiController(View controlsUi, YouTubePlayer youTubePlayer, YouTubePlayerView youTubePlayerView) {
    this.youTubePlayer = youTubePlayer;
    this.youTubePlayerView = youTubePlayerView;
    playerTracker = new YouTubePlayerTracker();
    youTubePlayer.addListener(playerTracker);

    initViews(controlsUi);
}

private void initViews(View view) {
    View container = view.findViewById(R.id.container);
    RelativeLayout relativeLayout = view.findViewById(R.id.root);
    YouTubePlayerSeekBar seekBar = view.findViewById(R.id.playerSeekbar);
    ImageButton pausePlay = view.findViewById(R.id.pausePlay);
    youTubePlayer.addListener(seekBar);

    seekBar.setYoutubePlayerSeekBarListener(new YouTubePlayerSeekBarListener() {
        @Override
        public void seekTo(float v) {
            youTubePlayer.seekTo(v);
        }
    });

    pausePlay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (playerTracker.getState() == PlayerConstants.PlayerState.PLAYING) {
                pausePlay.setImageResource(R.drawable.baseline_play_circle_filled_24);
                youTubePlayer.pause();
            } else {
                pausePlay.setImageResource(R.drawable.baseline_pause_circle_filled_24);
                youTubePlayer.play();
            }
        }
    });


    FadeViewHelper fadeViewHelper = new FadeViewHelper(container);
    fadeViewHelper.setAnimationDuration(FadeViewHelper.DEFAULT_ANIMATION_DURATION);
    fadeViewHelper.setFadeOutDelay(FadeViewHelper.DEFAULT_FADE_OUT_DELAY);
    youTubePlayer.addListener(fadeViewHelper);

    relativeLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            fadeViewHelper.toggleVisibility();
        }
    });

    container.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            fadeViewHelper.toggleVisibility();
        }
    });


    ImageButton fastForward = view.findViewById(R.id.fastForward);
    ImageButton fastBackward = view.findViewById(R.id.fastBackward);

    fastForward.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            float currentTime = playerTracker.getCurrentSecond();
            youTubePlayer.seekTo(currentTime + 10); // Fast forward by 10 seconds
        }
    });

    fastBackward.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            float currentTime = playerTracker.getCurrentSecond();
            youTubePlayer.seekTo(currentTime - 10); // Rewind by 10 seconds
        }
    });
}

}

this is the custom ui controls code. i want to add speed and quality changing options. but how?

@PierfrancescoSoffritti
Copy link
Owner

Well how you do it is up to you. I am not sure I understand the question.

@SureshTimma
Copy link
Author

I have implemented speed changing menu. But Im unable to implement quality changing menu!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants