【问题标题】:how to Integrate youtube to fragment?如何将 youtube 集成到片段?
【发布时间】:2017-05-16 11:35:10
【问题描述】:

我正在尝试在片段中实现你的管。在我成功地在一项活动中实现你的管子之前,它工作得很好,但此时在片段中显示黑屏。参考我尝试 (Integrating youtube to fragment)

片段代码:-

    public class YoutubeFragment extends Fragment {

private MainActivity myContext;

private YouTubePlayer YPlayer;
private String mVideoId = "QdUoieQOZ2s";

private static final String YoutubeDeveloperKey = "AIzaSyBVKvfrmSBUaCsj850v2Ks-2FCWiXn_rEw";

@Override
public void onAttach(Activity activity) {

    if (activity instanceof MainActivity) {
        myContext = (MainActivity) activity;
    }

    super.onAttach(activity);
}

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

    YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance();

    youTubePlayerFragment.initialize(YoutubeDeveloperKey,
            new YouTubePlayer.OnInitializedListener() {
                @Override
                public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
                    if (!b) {
                        YPlayer = youTubePlayer;
                        YPlayer.setShowFullscreenButton(false);
                        YPlayer.cueVideo(mVideoId);
                    }
                }

                @Override
                public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {

                }
            });
    FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
    transaction.add(R.id.fl_youtube, youTubePlayerFragment).commit();
    return rootView;
}

}

活动类:-

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

}

扩充 Xml 文件:-

<FrameLayout
    android:id="@+id/fl_youtube"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="gone"></FrameLayout>

【问题讨论】:

  • 使用 YouTube 播放器代替框架布局或其他布局。
  • 我在使用 framelayout 之前使用它,它对我不起作用.. 你能在片段中上传完整的 youtube 代码吗?

标签: android android-fragments youtube-api


【解决方案1】:

片段代码

private YouTubePlayer mYoutubePlayer;
private String mVideoId;

//Call this method after getting mVideoId
private void initializeYoutubeFragment() {

    YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance();

    youTubePlayerFragment.initialize(getString(R.string.youtube_key), new YouTubePlayer.OnInitializedListener() {

        @Override
        public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
             if (!wasRestored) {
                mYoutubePlayer = player;
                mYoutubePlayer.setShowFullscreenButton(false);
                mYoutubePlayer.cueVideo(mVideoId);
             }

        }

        @Override
        public void onInitializationFailure(YouTubePlayer.Provider arg0, YouTubeInitializationResult arg1) {


        }
    });
    FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
    transaction.add(R.id.fl_youtube, youTubePlayerFragment).commit();
}


@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    initializeYoutubeFragment();
}

和 XML

....<!--Put his frame layout wherever you need in fragment view xml-->
<FrameLayout
         android:id="@+id/fl_youtube"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:visibility="gone">
....

【讨论】:

  • 有什么问题?
  • 在我的活动 xml 我把 我想知道活动类的任何变化??
  • 是的,您发布的上述代码对于 Activity 非常适用,但您不能使用 xml 在另一个片段中膨胀片段。您将不得不使用 FrameLayout 来实现这一点。只需将 添加到您的片段 xml 而不是 YouTubePlayerSupportFragment
  • 它再次显示黑屏..我编辑我的代码请检查此代码
  • 查看我的编辑并在 'onViewCreated' 上实现你的 Youtube 片段代码
猜你喜欢
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 2013-06-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-14
  • 1970-01-01
相关资源
最近更新 更多