Reputation: 205
I'm trying to add youtube player API and in that when click event occurs on thumbnail visibility gone and progress bar appears and when Video started playing then progress bar is gone. Initially ProgressBar is gone.
layout.xml
<RelativeLayout
android:id="@+id/rl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/hr"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal">
<com.example.prateek.videoplayertest.YoutubePlayerView
android:id="@+id/ytplayer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
android:layout_marginLeft="-3dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop">
<ImageView
android:id="@+id/yt_thumbnail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_marginLeft="-3dp"
android:adjustViewBounds="true"
android:background="#000000"
android:scaleType="fitXY">
</ImageView>
</com.example.prateek.videoplayertest.YoutubePlayerView>
<ProgressBar
android:id="@+id/item_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foregroundGravity="center"
android:indeterminate="true"
android:visibility="gone"
android:layout_centerInParent="true" />
</RelativeLayout>
RecyclerAdapter.java
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
Picasso.with(context).load(video_thumbnail.get(position)).memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE).into(holder.yt_video_thumb);
holder.ytplayer.setVisibility(View.VISIBLE);
holder.ytplayer.setAutoPlayerHeight(context);
final YTParams params = new YTParams();
params.setPlaybackQuality(PlaybackQuality.small);
holder.yt_video_thumb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.flag_y = 1;
if(holder.flag_x == 1 && holder.flag_y == 1){
holder.ytplayer.play();
}
holder.yt_video_thumb.setVisibility(View.GONE);
holder.yt_progress.setVisibility(View.VISIBLE);
}
});
holder.ytplayer.initialize(video_id.get(position), params, new YoutubePlayerView.YouTubeListener() {
@Override
public void onReady() {
holder.flag_x = 1;
if(holder.flag_x == 1 && holder.flag_y == 1){
holder.ytplayer.play();
}
JLog.i("onReady()");
}
@Override
public void onStateChange(YoutubePlayerView.STATE state) {
/**
* YoutubePlayerView.STATE
*
* UNSTARTED, ENDED, PLAYING, PAUSED, BUFFERING, CUED, NONE
*
*/
if(state == YoutubePlayerView.STATE.ENDED){
holder.yt_video_thumb.setVisibility(View.VISIBLE); }
if(state == YoutubePlayerView.STATE.BUFFERING){
if(holder.flag_x == 1 && holder.flag_y == 1){
holder.ytplayer.play();
}
holder.ytplayer.play();
}
if(state == YoutubePlayerView.STATE.PLAYING){
holder.yt_progress.setVisibility(View.GONE);
holder.flag_y = 0;
holder.flag_x = 0;
Log.d("ValueCHECK", holder.flag_y+" "+ holder.flag_x);
}
if(state == YoutubePlayerView.STATE.PAUSED){
holder.yt_video_thumb.setVisibility(View.VISIBLE);
}
JLog.i("onStateChange(" + state + ")");
}
@Override
public void onPlaybackQualityChange(String arg) {
JLog.i("onPlaybackQualityChange(" + arg + ")");
}
@Override
public void onPlaybackRateChange(String arg) {
JLog.i("onPlaybackRateChange(" + arg + ")");
}
@Override
public void onError(String arg) {
holder.yt_video_thumb.setVisibility(View.VISIBLE);
JLog.e("onError(" + arg + ")");
}
@Override
public void onApiChange(String arg) {
JLog.i("onApiChange(" + arg + ")");
}
@Override
public void onCurrentSecond(double second) {
}
@Override
public void onDuration(double duration) {
// total duration
JLog.i("onDuration(" + duration + ")");
}
@Override
public void logs(String log) {
// javascript debug log. you don't need to use it.
JLog.d(log);
}
});
}
But what is happening when I'm clicking on any of the video first time the progress bar appears and works fine but for the next video when i click progress bar won't appears. I'm not getting why? I want Progress bar visible for all positions in card view when i click on video Thumbnail. Can anyone help me? Any help will be appreciated Thank You!!!
Upvotes: 3
Views: 1181
Reputation: 205
Finally, got the solution just instead of setting visibility of progressBar GONE set the Visibility INVISIBLE and Initially set the visibility of progressBar INVISIBLE. Hope it will help. Thank You
Upvotes: 1