2013-09-06 7 views
8

मैं अपने टुकड़े में वीडियो चलाने की कोशिश कर रहा हूं। हालांकि, मैं इसे काम नहीं कर सकता। मैं YoutubeFailureRecovery 'का विस्तार कर रहा हूँ अगर मैं मिलता है:YouTubePlayerFragment का उपयोग करके YouTube API के साथ वीडियो कैसे चलाएं?

09-06 21: 56: 40.472: ई/AndroidRuntime (4946): java.lang.IllegalStateException: की वजह से YouTubePlayerView केवल एक साथ बनाया जा सकता गतिविधि जो YouTubeBaseActivity को इसके संदर्भ के रूप में विस्तारित करती है।

यह मेरा .xml है:

<com.google.android.youtube.player.YouTubePlayerView 
    android:id="@+id/player" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

और यह वर्ग है:

public class YoutubeFragment extends YoutubeFailureRecovery { 

    YouTubePlayer player; 
    YouTubePlayerView playerView; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle arg2) { 
     // TODO Auto-generated method stub 
     return inflater.inflate(R.layout.detailview, container, false); 
    } 

    @Override 
    public void onStart() { 
     // TODO Auto-generated method stub 
     super.onStart(); 
     playerView = (YouTubePlayerView)getActivity().findViewById(R.id.player); 
     playerView.initialize(DataHolder.DEVELOPER_KEY, this); 

    } 

    @Override 
    public void onInitializationSuccess(Provider provider, YouTubePlayer player, 
             boolean wasRestored) { 
     // TODO Auto-generated method stub 
     player.cueVideo("nCgQDjiotG0"); 
    } 

    @Override 
    protected Provider getYouTubePlayerProvider() { 
     // TODO Auto-generated method stub 
     return playerView; 
    } 
} 


public abstract class YoutubeFailureRecovery extends YouTubePlayerSupportFragment implements YouTubePlayer.OnInitializedListener{ 

मैं सिर्फ क्या करना है पता नहीं है। मैंने अपनी फ्रैगमेंट क्लास को 'YoutubePlayerSupportFragment' के साथ विस्तारित करने का प्रयास किया, एक्सएमएल में एक वीडियो जैसे खंड जोड़ने की कोशिश की, लेकिन कुछ भी काम नहीं कर रहा है (त्रुटि फुर्ती)। शायद किसी को फ्रैगमेंट में यूट्यूब एपीआई का उपयोग करने के साथ कुछ अनुभव है?

उत्तर

27

YouTubePlayerView केवल एक गतिविधि है कि फैली YouTubeBaseActivity साथ काम करता है।

आप टुकड़े आप YoutubePlayerFragment/SupportFragment उपयोग करने के लिए उपयोग करना चाहते हैं।

उदाहरण के लिए आप कि YoutubePlayerSupportFragment से विरासत अपने कस्टम टुकड़ा बना सकते हैं:

public class VideoFragment extends YouTubePlayerSupportFragment { 

    public VideoFragment() { } 

    public static VideoFragment newInstance(String url) { 

     VideoFragment f = new VideoFragment(); 

     Bundle b = new Bundle(); 
     b.putString("url", url); 

     f.setArguments(b); 
     f.init(); 

     return f; 
    } 

    private void init() { 

     initialize("yourapikey", new OnInitializedListener() { 

      @Override 
      public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) { } 

      @Override 
      public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) { 
       if (!wasRestored) { 
        player.cueVideo(getArguments().getString("url")); 
       } 
      } 
     }); 
    } 
} 
कोड में

यह ऐसा दिखाई दे सकता:

VideoFragment f = VideoFragment.newInstance("your-video-url"); 
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, f).commit(); 

"fragment_container" इस मामले में होना चाहिए एक खाली फ़्रेमलाउट

+0

बिल्कुल सही! मैन ... –

+0

@ फिलिप, मुझे यहां एक समान समस्या है, http://goo.gl/V55wsu। मैं आपकी सलाह की सराहना करता हूं। – DJElbow

+0

जब मैं स्क्रीन को घुमाता हूं तो वीडियो बस गायब हो जाता है। कोई सुझाव? –

संबंधित मुद्दे