Open SureshTimma opened 2 months ago
i want the settings icon in custom ui player control.
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?
Well how you do it is up to you. I am not sure I understand the question.
I have implemented speed changing menu. But Im unable to implement quality changing menu!
how to add speed and quality changing options to player?
there are speed and quality changing options in default iframe player