请跟我一起,因为我对Android很新。我试图在片段类中初始化Youtube播放器。谷歌已经提供了在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");
}
}
}
如果有人能为片段提供等效的API,我将非常感激。
由于
答案 0 :(得分:4)
尝试使用以下示例:
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>
片段创建
VideoFragment videoFragment = VideoFragment.newInstance(VIDEO_ID);
VideoFragment
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);
}
}
});
}
}