Initializing YouTube Player in Snippet

Please support me since I'm pretty new to Android. I am trying to initialize a Youtube player in a fragment class. Google has already provided a method for initializing in an Activity that looks like this:

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); } } 

I tried using this code but did not work:

 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"); } } } 

I would be very grateful if anyone could provide an equivalent API for the fragment.

thanks

+6
source share
1 answer

Try using the example below:

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 Creation

 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); } } }); } } 
+4
source

Source: https://habr.com/ru/post/946038/


All Articles