我有一个文章对象,我想在我的Activity中显示。一篇文章可以有: -Text(s):1至少或几个 - 图像:0或几个 -Video(s):0或几个
每个元素可以在文章中的任何位置,例如: - 文字/图像/文字/视频 - 视频/图像/视频/文本 - 等......
在解析我的文章后,我以编程方式添加了我需要的内容:TextView,ImageView或VideoView(youtube或jwplayer)。实际上它适用于图像和文本,但我不知道如何在同一个活动中添加多个YouTube视频:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.post);
linearLayout = (LinearLayout) findViewById(R.id.llayout_article);
// Get article to display it
Intent intent = getIntent();
Article article = intent.getParcelableExtra("articleDetails");
//add ImageView & TextView
for (View view : article.getContentSplitInViews(this)) {
this.linearLayout.addView(view);
}
YouTubePlayerSupportFragment frag =
(YouTubePlayerSupportFragment) getSupportFragmentManager().findFragmentById(R.id.youtube_fragment);
src="g2mmUzNSeDM";
frag.initialize(apiKey, this);
YouTubePlayerSupportFragment frag2 =
(YouTubePlayerSupportFragment) getSupportFragmentManager().findFragmentById(R.id.youtube_fragment2);
src = "nCgQDjiotG0";
frag2.initialize(apiKey, this);
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) {
if (!wasRestored) {
youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
youTubePlayer.loadVideo(src);
youTubePlayer.play();
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
// YouTube error
String errorMessage = youTubeInitializationResult.toString();
Toast.makeText(getApplicationContext(), errorMessage, Toast.LENGTH_LONG).show();
Log.d("errorMessage:", errorMessage);
}
我当前的xml:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/scrollViewId"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:id="@+id/llayout_article"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
android:id="@+id/youtube_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
android:id="@+id/youtube_fragment2"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</ScrollView>
稍后我想在我的XML中为在文章对象中找到的每个视频添加programmaticaly片段标记。
实际上,我的活动中有2个玩家,但只有一个玩家正在播放视频,每个玩家的动作(播放/暂停/全屏)都会在2个玩家中做同样的事情。
答案 0 :(得分:0)
首先,您必须在onInitializationSuccess()中通过id区分两个提供者。
如果提供者是frag1,请调用youTubePlayer.loadVideo(&#34; g2mmUzNSeDM&#34;) 否则,如果提供者是frag2,请调用youTubePlayer.loadVideo(&#34; nCgQDjiotG0&#34;)
(如果您的活动扩展了YoutubeBaseActivity,您可以通过编程方式将YouTubePlayerView添加到您的布局中)