gpt4 book ai didi

java - Android YoutubePlayer API 崩溃

转载 作者:行者123 更新时间:2023-11-29 08:59:45 25 4
gpt4 key购买 nike

我已经创建了一个使用 youtube API 的 android 应用程序,但是我遇到了一个问题。当我用 youtube 视频加载 fragment 时。加载另一个 fragment ,然后返回到带有应用程序崩溃的 youtube 视频的 fragment 。

播放视频的 fragment :

public static Fragment newInstance(Context context) {
WorkshopFragment f = new WorkshopFragment();
return f;
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

ViewGroup root = (ViewGroup) inflater.inflate(R.layout.workshop_fragment, null);

YouTubePlayerFragment youTubePlayerFragment = (YouTubePlayerFragment) getActivity().getFragmentManager().findFragmentById(R.id.youtube_fragment);
youTubePlayerFragment.initialize(API_KEY, this);

return root;
}

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

}

@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player,
boolean wasRestored) {
if (!wasRestored) {
player.cueVideo(VIDEO_ID);
}
}

}

布局:

 <fragment
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:layout_below="@+id/paragraph"
android:layout_marginTop="30dp"
android:id="@+id/youtube_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

修复了重复 ID 错误:

XML:

<FrameLayout
android:id="@+id/fragment_youtube"
android:layout_below="@+id/rule"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="30dp" />

然后我通过代码创建了 youtube fragment :

Fragment fragment = new YouTubePlayerFragment();
FragmentManager fm = getActivity().getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_youtube, fragment);
ft.commit();

YouTubePlayerFragment youtubeFrag = (YouTubePlayerFragment) fragment;
youtubeFrag.initialize(API_KEY, this);

最佳答案

由于 fragment 是在 XML 中,所以每次扩充 XML 时它都会生成一个新 fragment 。而且我认为该 fragment 的 id 在 XML 中没有改变,它正在尝试创建一个与已经运行的 fragment 具有相同 id 的新 fragment 。两个正在运行的 fragment 不能有相同的 ID,所以我认为应用程序崩溃了。

尝试在开始新 fragment 之前终止旧 fragment ,或者以编程方式而不是通过 xml 创建 fragment 。

关于java - Android YoutubePlayer API 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18234604/

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