如何在youtube Android player中为youtube视频提供开始和结束参数?

如何在youtube Android player中为youtube视频提供开始和结束参数?,android,youtube-api,Android,Youtube Api,我正在使用Youtube播放器api在我的应用程序中播放Youtube视频。我想从36秒开始,然后在65秒结束 例如: 我正在使用youtubeAndroidPlayer Api。我没有找到任何Youtubeplayer设置起始值和结束值的方法。有人能建议我如何设置参数吗 我还希望使用youtube api中的“控件”字段隐藏控件,但我没有找到任何方法来隐藏它 我的xml: <LinearLayout xmlns:android="http://schemas.android.com/ap

我正在使用Youtube播放器api在我的应用程序中播放Youtube视频。我想从36秒开始,然后在65秒结束

例如:

我正在使用youtubeAndroidPlayer Api。我没有找到任何Youtubeplayer设置起始值和结束值的方法。有人能建议我如何设置参数吗

我还希望使用youtube api中的“控件”字段隐藏控件,但我没有找到任何方法来隐藏它

我的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>

嗯,您可以使用处理程序来跟踪视频的当前运行时间。当以毫秒为单位的时间达到要停止视频的时间点时,只需调用
player.pause()
方法即可

以下是活动的完整代码:

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);
    }
}
公共类MyActivity扩展YouTubeBaseActivity实现YouTubePlayer.OnInitializedListener{
公共静态最终字符串API_KEY=“AIzaSyCe6tORd9Ch4lx-9Ku5SQ476uS9OtZYsWA”;
公共静态最终字符串视频\u ID=“xyoajjlPt\u o”;
私人静态YouTueplayer播放器;
文本查看文本;
//这是以毫秒为单位的结束时间(65秒)
公共int endTime=65000;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.my_活动);
text=(TextView)findViewById(R.id.text);
YouTubePlayerView YouTubePlayerView=(YouTubePlayerView)findViewById(R.id.YouTubePlayerView);
初始化(API_键,this);
}
@凌驾
public void onInitializationFailure(提供程序,
YouTube初始化结果(结果){
Toast.makeText(getApplicationContext(),
“onInitializationFailure()”,
Toast.LENGTH_LONG).show();
}
@凌驾
public void onInitializationSuccess(提供程序提供程序、YouTubePlayer播放器、布尔值已还原){
MyActivity.player=player;//访问Runnable内部所必需的
//在第36秒开始播放视频
player.loadVideo(VIDEO_ID,36000);
最终处理程序=新处理程序();
handler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
//每1秒检查一次当前时间和结束时间

如果(MyActivity.player.getCurrentTimeMillis())非常感谢您的回答,我如何隐藏/显示控件。@user1891910您可以将播放器样式设置为
CHROMELESS
。若要执行此操作,请使用:
MyActivity.player.setPlayerStyle(YouTubePlayer.PlayerStyle.CHROMELESS)
并将其放在
其他部分中。通读文档,您会很容易得到答案-嗨,我也使用这个Youtube api加载视频,但这个api在4.0以上的最新版本中不起作用。当我尝试加载视频时,它显示初始化错误。您能建议我怎么做吗?-JoelFernandes
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);
    }
}