Ich weiß, das vor gefragt worden sein könnte, aber dies ist ein besonderer Fall, dass ich in ..Problemumgehung für Youtube API?
WICHTIG ich brauche, dies zu tun in einer separaten Klasse beteiligt bin, keine Tätigkeit. Eigentlich erweitert meine Klasse einen BaseViewPagerAdapter, geschrieben von jemand anderem ..
Die Idee ist, dass ich YoutubePlayerView nicht verwenden kann, weil ich YoutubeBaseActivity nicht erweitern kann.
Ich habe auch versucht YoutubePlayerSupportFragment verwenden, gleiche Arbeit nicht, weil ich nicht die refernce für die aus meiner XML-Datei ...
bekommen habe ich versuchen, so etwas wie dieses
public class YTVideoFragment extends YouTubePlayerSupportFragment {
private final static String TAG = "YoutubeVideoFragment";
private static final String DEV_KEY = "key";
private static String id;
private YouTubePlayer mPlayer;
public static YTVideoFragment newInstance(String url){
YTVideoFragment videoFragment = new YTVideoFragment();
Bundle bundle = new Bundle();
bundle.putString("uri", url);
videoFragment.setArguments(bundle);
videoFragment.init(0);
Log.i(TAG, "new Instance FINAL ");
return videoFragment;
}
public void init(final int time) {
initialize(DEV_KEY, new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
mPlayer = youTubePlayer;
Log.i(TAG, "-=onInitializationSuccess=-");
mPlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
id = getArguments().getString("url");
if (!b){
mPlayer.loadVideo(id, time);
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
Log.i(TAG, "-=onInitializationFailure=-");
Log.e(TAG, youTubeInitializationResult.toString());
}
});
}
}
und ich habe eine Instanz dies in der Klasse, die BaseViewPageAdapter erstreckt und versuchte
YouTubePlayerSupportFragment youtube = YouTubePlayerSupportFragment.newInstance();
youtube.getFragmentManager().beginTransaction().replace(R.id.youtubeplayerfragment,youtube);
01 zu tun
Aber ich erhalte eine Fehlermeldung, die Funktion ersetzt auf einer Null-Objekt Referenz angewandt wird ..
Wenn Sie Vorschläge haben, oder eine Idee, wie ich könnte es auf diesem speziellen Fall funktioniert wäre ich dankbar
Ich glaube, Sie 'youtube.getFragmentManager() begintransaction() ändern müssen, ersetzen (R.id.. .youtubeplayerfragment, youtube); 'zu' activity.getFragmentManager(). beginTransaction(). replace (R.id.youtubeplayerfragment, youtube); ' –
@sunil Ich kann die Aktivität nicht bekommen ... weil ich nicht in einer bin Aktivitätsklasse –
Dann müssen Sie Aktivität oder Kontextinstanz an diese Klasse übergeben. –