gpt4 book ai didi

安卓 YouTube API : Can't reinitialize YouTubePlayerFragment with new YouTube video

转载 作者:搜寻专家 更新时间:2023-11-01 08:49:58 30 4
gpt4 key购买 nike

我试图在单击按钮时将不同的视频加载到 YoutubePlayer fragment 中。我的按钮有一个 testClick 的 onclick 监听器。当我单击该按钮时,出现以下异常:“UsupportedExeception:无法在播放器顶部添加任何 View ”。当我从我的 onclick 方法初始化新视频时,初始化方法也没有被调用。如何将新的 YouTubeVideo 加载到以前使用的 YouTubePlayerFragment 中,以及如何从我的 onClick 方法中调用初始化方法?

public class ExersizeListActivity extends Activity implements
YouTubePlayer.OnInitializedListener {

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

public void testClick(View v) {
//new YouTube Fragment to replace old one
YouTubePlayerFragment youTubePlayerFragment=YouTubePlayerFragment.newInstance();
youTubePlayerFragment.initialize(YoutubeAPIKey.API_KEY, this);

FragmentManager fragManager=getFragmentManager();
FragmentTransaction fragmentTransaction=fragManager.beginTransaction();


fragmentTransaction.replace(R.id.youtube_fragment, youTubePlayerFragment);
fragmentTransaction.commit();
}

@Override
public void onInitializationFailure(Provider arg0,
YouTubeInitializationResult arg1) {
Log.e(null, "it bombed");

}

//not being called, and in current state would reinitialize with the same video
@Override
public void onInitializationSuccess(Provider arg0,
YouTubePlayer youtubePlayer, boolean arg2) {
youtubePlayer.cueVideo("YNKehLXpLRI");
}

}

<RelativeLayout

android:layout_width="match_parent"
android:layout_height="wrap_content" >

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

<Button
android:id="@+id/randomizeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Randomize!"
android:layout_below="@+id/youtube_fragment"
android:onClick="testClick"/>
</RelativeLayout>

最佳答案

而不是用 <fragment> 在 xml 布局文件中定义 fragment 标记,定义一个 FrameLayout 容器,在 runtime 处动态更改 fragment 时是必需的:

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

<FrameLayout
android:id="@+id/youtube_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<Button
android:id="@+id/randomizeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Randomize!"
android:layout_below="@+id/youtube_fragment"
android:onClick="testClick"/>
</RelativeLayout>

您需要添加第一个 YouTubeVideoFragmentonCreate()FragmentTransaction ,当用户点击按钮时,您已经拥有的代码 testClick()应该可以。

关于安卓 YouTube API : Can't reinitialize YouTubePlayerFragment with new YouTube video,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24502634/

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