Реализовать видео YouTube внутри фрагмента - PullRequest
0 голосов
/ 04 августа 2020

я реализую видео на YouTube в моем фрагменте.

но я получаю эту ошибку.

Required type: Fragment
Provided: YouTubePlayerSupportFragment

вот мой код

xml

<FrameLayout
                android:id="@+id/framelayoutvideo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/rounded_white_new"
                android:padding="10dp"
                android:layout_marginTop="20dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_below="@+id/framelayoutproductinfo">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                    <FrameLayout
                        android:id="@+id/youtube_fragment"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_centerHorizontal="true"
                        android:visibility="visible" />

                </RelativeLayout>

            </FrameLayout>

класс

public class ProductFragment extends Fragment implements View.OnClickListener {

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        View rootView = inflater.inflate(R.layout.productlayout, container, false);

YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance();
            FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
            transaction.replace(R.id.youtube_fragment, youTubePlayerFragment).commit();

            youTubePlayerFragment.initialize(YoutubeDeveloperKey, new YouTubePlayer.OnInitializedListener() {

                @Override
                public void onInitializationSuccess(YouTubePlayer.Provider arg0, YouTubePlayer youTubePlayer, boolean b) {
                    if (!b) {
                        YPlayer = youTubePlayer;
                        YPlayer.setFullscreen(true);
                        YPlayer.loadVideo("5OpGXj-wzeQ");
                        YPlayer.play();
                    }
                }

                @Override
                public void onInitializationFailure(YouTubePlayer.Provider arg0, YouTubeInitializationResult arg1) {
                    // TODO Auto-generated method stub

                }
            });

я получаю ошибку в этой части кода

transaction.replace(R.id.youtube_fragment, youTubePlayerFragment).commit();

Я не могу найти хороший учебник или ответьте о моей проблеме.

мне может помочь кто угодно. заранее спасибо.

1 Ответ

1 голос
/ 04 августа 2020

Если вы пытаетесь сделать это в AndroidX, метод replace (...) требует androidx.fragment.app.Fragment, а YouTubePlayerSupportFragment возвращает android .support.v4.app.Fragment.

Вот старый поток:

Фрагмент поддержки проигрывателя Youtube больше не работает Android studio 3.2 (androidx)

Перейдите по ссылке на страницу github, указанную в отмеченный ответ, вы найдете измененный класс и некоторые пояснения.

...