मेरी गतिविधि एक और गतिविधि को विस्तारित करती है और इसमें नेविगेशन ड्रॉवर होता है जहां प्रत्येक आइटम एक नया खंड खोलता है। मैं यूट्यूब को एक टुकड़े में एकीकृत करना चाहता हूं .. जाहिर है, मैंने यूट्यूब को गतिविधि में एकीकृत करने के लिए YouTubePlayerView का उपयोग किया है, लेकिन यहां यह है खंड में आवश्यक है। मैंने नेट पर खोज की और यूट्यूब को खंड में एकीकृत करने के लिए YouTubePlayerFragment पाया। लेकिन जब मैं ट्यूटोरियल में खोजा गया मैंने पाया कि यहां तक कि YouTubePlayerFragment का उपयोग करके हम बढ़ा रहे हैं YouTubeBaseActivity ये उदाहरण हैं .. 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विखंडन के लिए यूट्यूब को एकीकृत करना
मैं समझता हूँ कि कैसे YouTubePlayerFragment इस तरह के उपयोग करने के लिए है कि मेरी कक्षा टुकड़ा फैली बल्कि YouTubeBaseActivity से विफल रहा है जो मेरी परियोजना में जरूरी है..जैसे आप मेरी कक्षा के नीचे एक और गतिविधि बढ़ा सकते हैं और इसमें नेविगेशन ड्रॉवर शामिल है जिसमें पांचवां विकल्प यूट्यूब फ्रैगमेंट खोलता है। मैं इस खंड के अंदर यूट्यूब वीडियो खेलना चाहता हूं..मैं संक्षिप्त लेआउट दे रहा हूं कि मेरी कक्षाएं कैसे हैं -
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){
}
}
लेआउट
<?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:(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
मैं हाल ही में मेरे एप्लिकेशन में एक यूट्यूब वीडियो प्लेयर को क्रियान्वित किया है है। मेरी पहली कोशिश YoutubePlayerFragment का उपयोग कर रही थी, लेकिन इसकी एपीआई थोड़ी सी अनैतिक है और यह बहुत "चिकनी" उपयोगकर्ता अनुभव प्रदान नहीं करती है ... इसलिए मैंने यूट्यूब आईफ्रेम एपीआई (https://developers.google.com/youtube/iframe_api_reference) एक वेब व्यू के अंदर। एंड्रॉइड वेबव्यू सभी एचटीएमएल 5 सुविधाओं का समर्थन नहीं करता है, इसलिए आपको अपने आप से कुछ सामान करने की ज़रूरत है ... लेकिन यह (https://code.google.com/p/html5webview/) शुरू करने के लिए एक अच्छी जगह है। अंतिम परिणाम इसके लायक है। –
इसे आज़माएं: http: //stackoverflow.com/questions/34803095/android-studio-google-map-api-with-fragments –