安卓的YouTube API发挥两个或两个以上的Youtube播放器在一个主活动 [英] Android youtube API play two or more Youtube players in one main activity

查看:406
本文介绍了安卓的YouTube API发挥两个或两个以上的Youtube播放器在一个主活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用Android的Youtube API,我想打两个视频在我的应用程序的主要活动,而无需使用片段,我们有同样的问题与此的多个YouTube播放器在一个活动但没有可接受的解答,请帮助我们。

activity_main.xml

 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直
>

< com.google.android.youtube.player.YouTubePlayerView
    机器人:ID =@ + ID / VIDEO1
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT/>

< com.google.android.youtube.player.YouTubePlayerView
    机器人:ID =@ + ID /视频2
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT/>
 

  MainActivity.java

    包com.apps.you;
    进口android.os.Bundle;
进口com.google.android.youtube.player.YouTubeBaseActivity;
进口com.google.android.youtube.player.YouTubeInitializationResult;
进口com.google.android.youtube.player.YouTubePlayer;
进口com.google.android.youtube.player.YouTubePlayer.Provider;
进口com.google.android.youtube.player.YouTubePlayerView;

公共类MainActivity扩展YouTubeBaseActivity {
    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);

    ((YouTubePlayerView)findViewById(R.id.video1))。初始化(AIzaSyBmb9Yqu9vEBXjNOrBmZZ__6s12RH5RSv0,新YouTubePlayer.OnInitializedListener(){
        @覆盖
        公共无效onInitializationSuccess(提供provider1,YouTubePlayer PLAYER1,布尔restored1){
            如果(!restored1){
            player1.cueVideo(Daa38ruXHxE);
            }
        }

        @覆盖
        公共无效onInitializationFailure(提供provider1,YouTubeInitializationResult RESULT1){
        }
    });

    ((YouTubePlayerView)findViewById(R.id.video2))。初始化(AIzaSyBmb9Yqu9vEBXjNOrBmZZ__6s12RH5RSv0,新YouTubePlayer.OnInitializedListener(){

        公共无效onInitializationSuccess(供应商提供,YouTubePlayer球员,布尔恢复){

            如果(!恢复){
        player.loadVideo(ctQAPiojDKE);
            }
        }


        公共无效onInitializationFailure(供应商提供,YouTubeInitializationResult结果){
        }
    });
}
}
 

这个问题只有一个视频被播放结束时,VIDEO1初始化是overrriden的视频2初始化它们调用相同

  .initialize(新YouTubePlayer.OnInitializedListener(){});
 

本:

 ((YouTubePlayerView)findViewById(R.id.video1))。初始化(新
    YouTubePlayer.OnInitializedListener(){});

((YouTubePlayerView)findViewById(R.id.video2))。初始化(新
    YouTubePlayer.OnInitializedListener(){});
 

解决方案

也许微不足道的答案。但是,对于您的使用情况接受调用第二个YouTube播放器的初始化从第一个成功的回调?您是否尝试过吗?它应该是一个合理的解决办法。

但也有可能是正在扩大YouTubeBaseActivity我抬起头文件的catch,它看起来像有可能是因为他们之间的结合每个活动只有一个YouTubeView。

所以,我可以提供另一种建议,使用YouTubePlayerFragment或SupportYouTubePlayerFragment代替。它应该有自己的生命周期(未测试)。

Using the Android Youtube api i want to play two videos in my app main activity without using fragment we have the same problem with this Multiple Youtube players in one activity but has no acceptable answers yet please help us.

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

<com.google.android.youtube.player.YouTubePlayerView
    android:id="@+id/video1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<com.google.android.youtube.player.YouTubePlayerView
    android:id="@+id/video2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

MainActivity.java

    package com.apps.you;
    import android.os.Bundle;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerView;

public class MainActivity extends YouTubeBaseActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    ((YouTubePlayerView) findViewById(R.id.video1)).initialize("AIzaSyBmb9Yqu9vEBXjNOrBmZZ__6s12RH5RSv0", new YouTubePlayer.OnInitializedListener() {
        @Override
        public void onInitializationSuccess(Provider provider1, YouTubePlayer player1, boolean restored1) {
            if (!restored1) {
            player1.cueVideo("Daa38ruXHxE");
            }
        }

        @Override
        public void onInitializationFailure(Provider provider1, YouTubeInitializationResult result1) {
        }
    });

    ((YouTubePlayerView) findViewById(R.id.video2)).initialize("AIzaSyBmb9Yqu9vEBXjNOrBmZZ__6s12RH5RSv0", new YouTubePlayer.OnInitializedListener() {

        public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean restored) {

            if (!restored) {
        player.loadVideo("ctQAPiojDKE");
            }
        }


        public void onInitializationFailure(Provider provider, YouTubeInitializationResult result) {
        }
    });
}
}

the problem with this is only one video was playing at the end , video1 initialization was overrriden by the video2 initialization they call the same

  .initialize(new YouTubePlayer.OnInitializedListener(){});

by this:

((YouTubePlayerView) findViewById(R.id.video1)).initialize(new
    YouTubePlayer.OnInitializedListener(){});

((YouTubePlayerView) findViewById(R.id.video2)).initialize(new
    YouTubePlayer.OnInitializedListener(){});

解决方案

Maybe trivial answer. But is for your use-case acceptable to call init of second youtube player from success callback of the first one? Have you tried it? It should be a reasonable workaround.

But there might be a catch that is extending YouTubeBaseActivity I looked up documentation, and it looks like there can be only one YouTubeView per activity because of binding between them.

So I can offer another advice, use YouTubePlayerFragment or SupportYouTubePlayerFragment instead. It should have its own lifecycle (not tested).

这篇关于安卓的YouTube API发挥两个或两个以上的Youtube播放器在一个主活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆