Etkinliğim, başka bir etkinliği genişletir ve her öğenin yeni bir parça açtığı gezinme çekmecesinden oluşur. Youtube'u parçanın bir parçasıyla birleştirmek istiyorum. Açıkçası Youtube'u etkinlikle bütünleştirmek için YouTubePlayerView'ı kullandım ama işte burada fragman içinde gerekli. Ağda arama yaptım ve YouTubePlayerFragment'i youtube'yu fragmana entegre edecek şekilde buldum. i dökümanında yaptıkları aramada Ama ben bile YouTubePlayerFragment'tir kullanarak biz YouTubeBaseActivity .Bu örneklerdir uzanan olduğunu tespit .. 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.htmlYoutube'ı parçalara ayırma
benim sınıf yerine YouTubeBaseActivity daha Fragment uzandığı YouTubePlayerFragment'tir böyle nasıl kullanılacağını anlamak için başarısız olduğu Benim projemde gereklidir.Aşağıda görebilirsiniz başka bir aktivite uzatır ve beşinci seçeneği YouTube Fragmanı açar hangi navigasyon çekmecesi oluşur.Bu parçanın içinde Youtube video oynamak istiyorum.Benim benim sınıfları nasıl kısa bir düzen veriyoruz -
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();
}
}
}
YouTubeFrag ment.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){
}
}
düzen
<?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>
Hata-
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
sizin Fragment olduğunu. İlk denemem YoutubePlayerFragment kullanıyordu, ancak API'sı biraz pratik ve çok "pürüzsüz" kullanıcı deneyimi sağlamadı ... bu yüzden Youtube iframe API'sini denedim (https://developers.google.com/youtube/iframe_api_reference WebView içinde. Android WebView, tüm HTML5 özelliklerini desteklemez, bu nedenle kendiniz bazı şeyler yapmanız gerekir ... ancak bu (https://code.google.com/p/html5webview/) başlamak için iyi bir yerdir. Son sonuç buna değer. –
Bunu deneyin: http: //stackoverflow.com/questions/34803095/android-studio-google-map-api-with-fragments –