gpt4 book ai didi

android - 在 Fragment 中初始化 YouTube 播放器

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:05:15 24 4
gpt4 key购买 nike

请耐心等待,因为我是 Android 的新手。我正在尝试在 fragment 类中初始化 Youtube 播放器。 Google 已经提供了在 Activity 中初始化的方法,如下所示:

package com.examples.youtubeapidemo;

import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerView;

import android.os.Bundle;


public class PlayerViewDemoActivity extends YouTubeFailureRecoveryActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.playerview_demo);

YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(DeveloperKey.DEVELOPER_KEY, this);
}

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

@Override
protected YouTubePlayer.Provider getYouTubePlayerProvider() {
return (YouTubePlayerView) findViewById(R.id.youtube_view);
}

}

我尝试使用此代码但它不起作用:

public class TabFragment5 extends YouTubePlayerFragment implements YouTubePlayer.OnInitializedListener {
/** (non-Javadoc)
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
YouTubePlayerFragment yf = newInstance(); //new YouTubePlayerFragment();
yf.initialize("dsds", this);
return (LinearLayout)inflater.inflate(R.layout.tab_frag4_layout, container, false);
}

@Override
public void onInitializationFailure(Provider arg0,
YouTubeInitializationResult arg1) {
// TODO Auto-generated method stub

}

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

如果有人能为 fragment 提供等效的 API,我将不胜感激。

谢谢

最佳答案

尝试使用下面的示例:

fragment .xml

<RelativeLayout 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"
tools:context=".VideoFragment" >
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:id="@+id/youtubeplayerfragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>



fragment 创建

VideoFragment videoFragment = VideoFragment.newInstance(VIDEO_ID);


视频 fragment

public class VideoFragment extends YouTubePlayerSupportFragment {
public static final String DEVELOPER_ANDROID_KEY = "KEY";

public static VideoFragment newInstance(String url) {
VideoFragment videoFragment = new VideoFragment();
Bundle bundle = new Bundle();
bundle.putString("url", url);
videoFragment.setArguments(bundle);
videoFragment.init(0);
return videoFragment;
}

private void init(final int time) {
initialize(DEVELOPER_ANDROID_KEY, new OnInitializedListener() {

@Override
public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) {
}

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer
player, boolean wasRestored) {
mPlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
id = getArguments().getString("url");
if (!wasRestored) {
mPlayer.loadVideo(id, time);
}
}
});
}
}

关于android - 在 Fragment 中初始化 YouTube 播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16799872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com