0

我收到了一篇文章对象,我想在我的活动中显示。一个物品可以具有: -Text(S):1至少或几个 -Image(S):0或几个 -Video(S):0或几个在活动中显示几个YouTube视频

每个元素可以是文章中的任何位置例如: - 文本/图片/文字/视频 - 视频/图像/视频/文本 - 等等......

分析我的文章后,我加入编程我需要的内容: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> 

后来我想programmaticaly添加文章对象中找到的每个视频的XML中的片段标签。

实际上,我的活动中有2名玩家,但只有一名玩家正在播放视频,并且每个玩家的操作(播放/暂停/全屏)都会在2名玩家中做同样的事情。

android youtube api

+0

https://androidtutorialmagic.wordpress.com/my-mini-project/multiple-youtube-video-in-recyclerviewlistview-in-android/ –

+0

不错的教程,但我不真的想使用youtubeStandAlonePlayer。有没有办法显示多个视频,然后点击“播放按钮”播放正确的视频? – gamerounet

回答

0

所有你必须从两个供应商的ID在onInitializationSuccess区分的第一个()。

如果提供的是frag1,调用youTubePlayer.loadVideo( “g2mmUzNSeDM”) 否则如果供应商是frag2,调用youTubePlayer.loadVideo( “nCgQDjiotG0”)

(你可以以编程方式添加YouTubePlayerView到您的布局如果你的活动延伸YoutubeBaseActivity)

+0

在进入onInitializationSuccess之前,如何知道frag1提供者的id是什么?我需要知道哪些src我必须加载,如果我看到一个特定的Providersid 其实我不能使用YoutubePlayerView,因为我扩展了appCompatActivity,所以我读到使用YoutubePlayerFragment是解决方案。 – gamerounet

+0

身份证将是一个例子。你可以轻松地比较。 if(frag1.equals(provider)){// TODO:call loadVideo} else if(frag2.equals(provider)){// TODO:call loadVideo} – jkirtyan

+0

它不会改变任何东西,即使有这个条件,唯一的播放的视频是最后加载的... – gamerounet