Integración de youtube para fragmentar

Mi actividad se extiende otra actividad y consiste en el cajón de navegación donde cada elemento abre un nuevo fragmento. Quiero integrar Youtube a uno de los fragmentos .. Anteriormente usé YouTubePlayerView para integrar Youtube a la actividad, pero aquí es necesario en el fragmento. Busqué en Net y encontró YouTubePlayerFragment para integrar youtube a fragmento. Pero cuando busqué en tutoriales encontré que incluso usando YouTubePlayerFragment estamos ampliando YouTubeBaseActivity. Estos son los ejemplos. Http://android-coding.blogspot.in/2013/04/example-to-use-youtubeplayerfragment-of. Html http://android-er.blogspot.in/2013/06/example-to-use-youtubeplayerfragment-of.html

No pude entender cómo usar YouTubePlayerFragment tal que mi clase extiende fragmento en lugar de YouTubeBaseActivity que se requiere en mi proyecto .. Como u puede ver a continuación mi clase se extiende otra actividad y consiste en el cajón de navegación en la quinta opción que abre YouTube Fragment.I want Para reproducir video de Youtube dentro de este fragmento .. Estoy dando un breve diseño de cómo mis clases son-

public class LandingActivity extends BaseGActivity { . . . . public void selectDrawerItem(int position) { Bundle args = new Bundle(); switch (position) { case 0: currentFragment = new HomeFragment_(); args.putString(G.General.MEDIA_TYPE_KEY, G.General.MEDIA_TYPE_ALL); GApplication.getInstance().stopGPlayer(); break; case 1: currentFragment = new HomeFragment_(); args.putString(G.General.MEDIA_TYPE_KEY, G.General.MEDIA_TYPE_PHOTO); GApplication.getInstance().stopGPlayer(); break; // case 2: currentFragment = new HomeFragment_(); args.putString(G.General.MEDIA_TYPE_KEY, G.General.MEDIA_TYPE_AUDIO); GApplication.getInstance().stopGPlayer(); break; case 3: currentFragment = new HomeFragment_(); args.putString(G.General.MEDIA_TYPE_KEY, G.General.MEDIA_TYPE_VIDEO); GApplication.getInstance().stopGPlayer(); break; case 4: currentFragment = new HomeFragment_(); args.putString(G.General.MEDIA_TYPE_KEY, G.General.MEDIA_TYPE_MEME); GApplication.getInstance().stopGPlayer(); break; case 5: currentFragment = new YoutubeFragment(); default: currentFragment = new HomeFragment_(); args.putString(G.General.MEDIA_TYPE_KEY, G.General.MEDIA_TYPE_ALL); GApplication.getInstance().stopGPlayer(); break; } currentFragment.setArguments(args); FragmentManager frgManager = getFragmentManager(); frgManager.beginTransaction().replace(R.id.content_frame, currentFragment) .commit(); mDrawerList.setItemChecked(position, true); setTitle(dataList.get(position).getItemName()); mDrawerLayout.closeDrawers(); } public class YoutubeFragment extends Fragment implements YouTubePlayer.OnInitializedListener{ private FragmentActivity myContext; private YouTubePlayer YPlayer; private static final String YoutubeDeveloperKey = "xyz"; private static final int RECOVERY_DIALOG_REQUEST = 1; @Override public void onAttach(Activity activity) { if (activity instanceof FragmentActivity) { myContext = (FragmentActivity) activity; } super.onAttach(activity); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.activity_you_tube_api, container, false); YouTubePlayerView youTubeView = (YouTubePlayerView) rootView.findViewById(R.id.youtube_view); youTubeView.initialize(YoutubeDeveloperKey, (YouTubePlayer.OnInitializedListener) myContext); return rootView; } @Override public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) { if (errorReason.isUserRecoverableError()) { errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show(); } else { String errorMessage = String.format( "There was an error initializing the YouTubePlayer", errorReason.toString()); Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show(); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RECOVERY_DIALOG_REQUEST) { getYouTubePlayerProvider().initialize(YoutubeDeveloperKey, this); } } @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) { if (!wasRestored) { YPlayer = player; YPlayer.setFullscreen(true); YPlayer.loadVideo("2zNSgSzhBfM"); YPlayer.play(); } } } 

YouTubeFragment.java

 public class YoutubeFragment extends Fragment implements YouTubePlayer.OnInitializedListener { private FragmentActivity myContext; private YouTubePlayer YPlayer; private static final String YoutubeDeveloperKey = "xyz"; private static final int RECOVERY_DIALOG_REQUEST = 1; @Override public void onAttach(Activity activity) { if (activity instanceof FragmentActivity) { myContext = (FragmentActivity) activity; } super.onAttach(activity); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.activity_you_tube_api, container, false); YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance(); youTubePlayerFragment.initialize("DEVELOPER_KEY", new YouTubePlayer.OnInitializedListener() { }); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.add(R.id.youtube_fragment, youTubePlayerFragment).commit(); return rootView; } @Override public void onInitializationSuccess (YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer,boolean b){ if (!b) { YPlayer = youTubePlayer; YPlayer.setFullscreen(true); YPlayer.loadVideo("2zNSgSzhBfM"); YPlayer.play(); } } @Override public void onInitializationFailure (YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult){ } } 

diseño

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment" android:id="@+id/youtube_fragment" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> 

Error-

 Error:(64, 101) error: <anonymous com.pc.gi.ui.fragment.YoutubeFragment$1> is not abstract and does not override abstract method onInitializationFailure(Provider,YouTubeInitializationResult) in OnInitializedListener 

Primero extienda su Actividad como normal

  class YourActivity extends Activity... 

En el archivo de diseño, coloque las líneas abajo

 <fragment android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment" android:id="@+id/youtube_fragment" android:layout_width="match_parent" android:layout_height="wrap_content"/> 

A continuación, en su actividad, puede crear su instancia utilizando la línea inferior en el método onCreareView de su fragmento.

 YouTubePlayerSupportFragment youTubePlayerFragment = (YouTubePlayerSupportFragment) getActivity().getSupportFragmentManager() .findFragmentById(R.id.youtube_fragment); 

O puede declarar un FrameLayout en su xml y luego iniciar el YouTubeSupportFragment utilizando líneas inferiores

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/youtube_fragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:visibility="visible" /> </RelativeLayout> 

Código en su onCreateView

  YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance(); youTubePlayerFragment.initialize("DEVELOPER_KEY", new OnInitializedListener() { @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) { if (!wasRestored) { YPlayer = player; YPlayer.setFullscreen(true); YPlayer.loadVideo("2zNSgSzhBfM"); YPlayer.play(); } } @Override public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) { // TODO Auto-generated method stub } }); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.add(R.id.youtube_fragment, youTubePlayerFragment).commit(); 

La clave aquí es usar YouTubePlayerSupportFragment lugar de YouTubePlayerFragment .

Espero que esto ayude.

Aquí está tu fragmento

 import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.google.android.youtube.player.YouTubeInitializationResult; import com.google.android.youtube.player.YouTubePlayer; import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener; import com.google.android.youtube.player.YouTubePlayer.Provider; import com.google.android.youtube.player.YouTubePlayerSupportFragment; import com.ismart.omanapp.R; public class YoutubeFragment extends Fragment { private FragmentActivity myContext; private YouTubePlayer YPlayer; private static final String YoutubeDeveloperKey = "xyz"; private static final int RECOVERY_DIALOG_REQUEST = 1; @Override public void onAttach(Activity activity) { if (activity instanceof FragmentActivity) { myContext = (FragmentActivity) activity; } super.onAttach(activity); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.activity_you_tube_api, container, false); YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance(); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.add(R.id.youtube_fragment, youTubePlayerFragment).commit(); youTubePlayerFragment.initialize("DEVELOPER_KEY", new OnInitializedListener() { @Override public void onInitializationSuccess(Provider arg0, YouTubePlayer youTubePlayer, boolean b) { if (!b) { YPlayer = youTubePlayer; YPlayer.setFullscreen(true); YPlayer.loadVideo("2zNSgSzhBfM"); YPlayer.play(); } } @Override public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) { // TODO Auto-generated method stub } }); } } 
  • ¿Cómo se juega a los videos MP4 de Youtube?
  • Cómo buscar videos con la API de datos de YouTube en Android
  • Detectar o la latencia aproximada de Bluetooth en Android (reproducción de audio)
  • Se bloquea el SDK de Youtube al cargar vídeos en directo
  • Agrega API de datos de Youtube en Android Studio usando Gradle
  • Buscando en YouTube HTML5 video sobre Android WebView
  • Aplicación para Android de YouTube
  • Forzar anuncio del youtube para que aparezca para la prueba
  • Los controles de YouTube (reproducción / pausa) no funcionan después de restaurar el reproductor / se reanuda la actividad
  • la forma actual recomendada para reproducir vídeo de youtube en todos los dispositivos Android
  • Intento de YouTube, error 400
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.