gpt4 book ai didi

android - fragment 中的 YouTubePlayerView

转载 作者:太空狗 更新时间:2023-10-29 13:57:05 27 4
gpt4 key购买 nike

我有一个 fragment ,它有一堆安卓 View 来播放各种媒体项目——图像、mp4 视频、pdf。

我想支持 YouTubePlayerView 以支持播放 youtube 视频。我知道使用 YouTubePlayerFragment,但我想将 YouTubePlayerView 放在普通 fragment 中。我如何实现这一目标?

最佳答案

这周我也有同样的问题。我只有 1 Activity在我的应用程序中,其他所有内容都是 fragment ,所以我不想执行扩展 YouTubeActivity 的文档方法只是为了使用 YouTubePlayerView .

相反,如果您继续阅读文档状态 YouTubeFragment contains a YouTubePlayer .所以我最终将 fragment 视为一个 View 并明确地放置了一个 <fragment>MyFragment 中标记的布局。在onCreateView期间的 MyFragment YouTubeFragment 为我实例化,然后我可以获得对 YouTubeFragment AND YouTubePlayer 的引用。

来自 MyFragmentonCreateView我称这个助手为initYouTube() .注意:你真正想要的是YouTubePlayer , 而不是 YouTubePlayerView和许多编程任务一样,有无数种方法可以完成工作。然后我保留对播放器和 YT fragment 的引用以供以后在 MyFragment 中使用的生命周期。

private void initYouTube() {

if (youTubePlayerFragment == null) {
youTubePlayerFragment = (YouTubePlayerFragment) getFragmentById(R.id.youtube_frag);
youTubePlayerFragment.initialize(getString(R.string.api_key), new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
Log.i("Detail","YouTube Player onInitializationSuccess");

// Don't do full screen
player.setFullscreen(false);
if (!wasRestored) {
youTubePlayer = player;
cueVideoIfNeeded();
}
}

@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
Log.i("Detail", "Failed: "+youTubeInitializationResult);
if (youTubeInitializationResult.isUserRecoverableError()) {
youTubeInitializationResult.getErrorDialog(getMainActivity(), RECOVERY_DIALOG_REQUEST).show();
} else {
callToast(youTubeInitializationResult.toString(), true);
}
}
});
}
}

YouTubeFragment XML,嵌套在 MyFragment 中的布局 XML。

<RelativeLayout>..../>

<fragment
android:id="@+id/youtube_frag"
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:layout_below="@id/detail_animal_action_relative_layout"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
/>

<TextView>...../>

最终产品给我这样的东西。 enter image description here

关于android - fragment 中的 YouTubePlayerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38555319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com