如何在Android版YouTube播放YouTube视频提供的开始和结束参数? [英] How to provide start and end parameters for a youtube video in youtube Android player?

查看:421
本文介绍了如何在Android版YouTube播放YouTube视频提供的开始和结束参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是YouTube播放器API,用于在应用程序中播放YouTube视频。我要开始从假设36微秒的视频,并希望在一些65sec来结束这部影片。

例如: https://www.youtube.com/v/ ?BmOpD46eZoA开始= 36安培;末= 65

我使用youtubeAndroidPlayer API。我没有找到任何方法Youtubeplayer设置开始和结束values​​.could有人建议我如何设置参数。

我也想控制是隐藏使用YouTube API取得了控制领域,但我没有找到任何方法来隐藏这一点。

我的XML:

 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:paddingBottom会=@扪/ activity_vertical_margin
    机器人:paddingLeft =@扪/ activity_horizo​​ntal_margin
    机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
    机器人:paddingTop =@扪/ activity_vertical_margin
    机器人:方向=垂直
    工具:上下文=MainActivity。>    <的TextView
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文字=htt​​p://android-er.blogspot.com/
        机器人:文字样式=大胆
        机器人:layout_gravity =CENTER_HORIZONTAL
        机器人:自动链接=网/>    < com.google.android.youtube.player.YouTubePlayerView
        机器人:ID =@ + ID / youtubeplayerview
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT/>< / LinearLayout中>

我的活动:

 公共类MainActivity扩展YouTubeBaseActivity工具
YouTubePlayer.OnInitializedListener { 公共静态最后弦乐API_KEY =AIzaSyCe6tORd9Ch4lx-9Ku5SQ476uS9OtZYsWA
 公共静态最后弦乐VIDEO_ID =xyoajjlPt_o;    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);        YouTubePlayerView youTubePlayerView =(YouTubePlayerView)findViewById(R.id.youtubeplayerview);
        youTubePlayerView.initialize(API_KEY,这一点);
    } @覆盖
 公共无效onInitializationFailure(供应商提供,
   YouTubeInitializationResult结果){
  Toast.makeText(getApplicationContext(),
    onInitializationFailure(),
    Toast.LENGTH_LONG).show();
 } @覆盖
 公共无效onInitializationSuccess(提供商提供商,YouTubePlayer球员,
   布尔wasRestored){
  如果(!wasRestored){
        player.cueVideo(VIDEO_ID);      }
 }


解决方案

好了,你可以利用处理器的跟踪视频的当前运行时间。当以毫秒为单位的时间已经达到要停止视频点,只需调用 player.pause()方法。

下面是活动的完整code:

 公共类MyActivity扩展YouTubeBaseActivity实现YouTubePlayer.OnInitializedListener {    公共静态最后弦乐API_KEY =AIzaSyCe6tORd9Ch4lx-9Ku5SQ476uS9OtZYsWA
    公共静态最后弦乐VIDEO_ID =xyoajjlPt_o;
    私有静态YouTubePlayer球员;    TextView的文本;    //这是以毫秒为单位的结束时间(65秒)
    公众诠释ENDTIME = 65000;
    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.my_activity);
        文字=(TextView的)findViewById(R.id.text);
        YouTubePlayerView youTubePlayerView =(YouTubePlayerView)findViewById(R.id.youtubeplayerview);
        youTubePlayerView.initialize(API_KEY,这一点);
    }    @覆盖
    公共无效onInitializationFailure(供应商提供,
            YouTubeInitializationResult结果){
        Toast.makeText(getApplicationContext(),
                onInitializationFailure(),
                Toast.LENGTH_LONG).show();
    }    @覆盖
    公共无效onInitializationSuccess(提供商提供商,YouTubePlayer球员,布尔wasRestored){        MyActivity.player =玩家; //必要的内部Runnable的访问        //开始在第36秒的视频
        player.loadVideo(VIDEO_ID,36000);        最后的处理程序处理程序=新的处理程序();
        handler.postDelayed(新的Runnable(){
            @覆盖
            公共无效的run(){
                //对于每1秒,检查当前时间和结束时间
                如果(MyActivity.player.getCurrentTimeMillis()&下; =结束时间){
                    text.setText(视频播放在+ MyActivity.player.getCurrentTimeMillis());
                    handler.postDelayed(这一点,1000);
                }其他{
                    handler.removeCallbacks(本); //不再需要
                    text.setText(达+结束时间);
                    MyActivity.player.pause(); //和暂停视频
                }
            }
        },1000);
    }
}

我不知道是否有任何其他方式。希望它可以解决你的问题。

P.S。重复的有人问<一个href=\"http://stackoverflow.com/questions/20568042/cannot-able-to-give-start-and-end-values-using-youtubeandroidplayer-api/20568718\">here我已经更新了我的回答那里。

I am using an Youtube Player api for playing youtube videos in my application. I want to start the video from suppose 36sec and wants to end this video at some 65sec.

example: https://www.youtube.com/v/BmOpD46eZoA?start=36&end=65

I am using youtubeAndroidPlayer Api. I didnt find any methods for Youtubeplayer to set the start and end values.could anyone suggest how can I set the parameters.

And I also want the controls to be hide using the "controls" field in youtube api,but I didnt find any methods to hide this.

my xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="http://android-er.blogspot.com/"
        android:textStyle="bold"
        android:layout_gravity="center_horizontal"
        android:autoLink="web" />

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

</LinearLayout>

My Activity:

public class MainActivity extends YouTubeBaseActivity implements
YouTubePlayer.OnInitializedListener{

 public static final String API_KEY = "AIzaSyCe6tORd9Ch4lx-9Ku5SQ476uS9OtZYsWA";
 public static final String VIDEO_ID = "xyoajjlPt_o";

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

        YouTubePlayerView youTubePlayerView = (YouTubePlayerView)findViewById(R.id.youtubeplayerview);
        youTubePlayerView.initialize(API_KEY, this);


    }

 @Override
 public void onInitializationFailure(Provider provider,
   YouTubeInitializationResult result) {
  Toast.makeText(getApplicationContext(), 
    "onInitializationFailure()", 
    Toast.LENGTH_LONG).show();
 }

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

      }
 }

解决方案

Well, you can make use of Handler to track the current running time of the video. When the time in milliseconds has reached the point where you want to stop the video, simply call the player.pause() method.

Here's the complete code of the activity:

public class MyActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener{

    public static final String API_KEY = "AIzaSyCe6tORd9Ch4lx-9Ku5SQ476uS9OtZYsWA";
    public static final String VIDEO_ID = "xyoajjlPt_o";
    private static YouTubePlayer player;

    TextView text;

    //this is the end time in milliseconds (65th second)
    public int endTime = 65000; 


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_activity);
        text = (TextView) findViewById(R.id.text);
        YouTubePlayerView youTubePlayerView = (YouTubePlayerView)findViewById(R.id.youtubeplayerview);
        youTubePlayerView.initialize(API_KEY, this);
    }

    @Override
    public void onInitializationFailure(Provider provider,
            YouTubeInitializationResult result) {
        Toast.makeText(getApplicationContext(), 
                "onInitializationFailure()", 
                Toast.LENGTH_LONG).show();
    }

    @Override
    public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) {

        MyActivity.player = player; //necessary to access inside Runnable 

        //start the video at 36th second
        player.loadVideo(VIDEO_ID, 36000);

        final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                //For every 1 second, check the current time and endTime
                if(MyActivity.player.getCurrentTimeMillis() <= endTime) { 
                    text.setText("Video Playing at " + MyActivity.player.getCurrentTimeMillis());
                    handler.postDelayed(this, 1000);
                } else {
                    handler.removeCallbacks(this); //no longer required
                    text.setText(" Reached " + endTime);
                    MyActivity.player.pause(); //and Pause the video
                }
            }
        }, 1000);
    }
}

I'm not sure if there's any other way. Hope it solved your problem.

P.S. A duplicate question was asked here and I've updated my answer there.

这篇关于如何在Android版YouTube播放YouTube视频提供的开始和结束参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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