2014-04-11 6 views
5

Sto utilizzando una API di YouTube Player per riprodurre i video di YouTube nella mia applicazione. Il video inizia a suonare e si interrompe dopo 1-2 secondiMettere in pausa il video di YouTube dopo 1-2 secondi

Ho creato Frammento video e ViewGroup. Successivamente creo qualche videoregistrazione youtobe.

VideoFragment

public static final class VideoFragment extends YouTubePlayerSupportFragment implements 
     OnInitializedListener 
{ 

    private YouTubePlayer player; 
    private String videoId; 

    public static VideoFragment newInstance() 
    { 
     return new VideoFragment(); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     initialize(Constants.DEVELOPER_KEY, this); 
    } 

    @Override 
    public void onDestroy() 
    { 
     if (player != null) 
     { 
      player.release(); 
     } 
     super.onDestroy(); 
    } 

    public void setVideoId(String videoId) 
    { 
     if (videoId != null && !videoId.equals(this.videoId)) 
     { 
      this.videoId = videoId; 
      if (player != null) 
      { 
       player.cueVideo(videoId); 
      } 
     } 
    } 

    public void pause() 
    { 
     if (player != null) 
     { 
      player.pause(); 
     } 
    } 

    @Override 
    public void onInitializationSuccess(Provider provider, YouTubePlayer player, 
      boolean restored) 
    { 
     this.player = player; 
     if (!restored && videoId != null) 
     { 
      player.cueVideo(videoId); 
     } 
    } 

    @Override 
    public void onInitializationFailure(Provider provider, YouTubeInitializationResult result) 
    { 
     this.player = null; 
    } 

} 

di funzione per la creazione Youtobe VideoView

private ViewGroup createYouTubePlayer(final VideoData data, final FrameLayout youTubePlayer) 
{ 

    youTubePlayer.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View v) 
     { 
      FragmentManager fm = mActivity.getSupportFragmentManager(); 

      if (v.getId() == mCurrentYouTubePlayer) 
      { 
       return; 
      } 

      VideoFragment fragment = (VideoFragment) fm.findFragmentById(mCurrentYouTubePlayer); 
      if (fragment == null) 
      { 
       fragment = VideoFragment.newInstance(); 
       fragment.setVideoId(data.srcPath); 

       fm.beginTransaction().add(youTubePlayer.getId(), fragment).commit(); 
       mCurrentYouTubePlayer = v.getId(); 
      } 
      else 
      { 
       fm.beginTransaction().remove(fragment).commit(); 

       fragment = VideoFragment.newInstance(); 
       fragment.setVideoId(data.srcPath); 
       fm.beginTransaction().add(youTubePlayer.getId(), fragment).commit(); 
       mCurrentYouTubePlayer = v.getId(); 
      } 
     } 
    }); 



    return youTubePlayer; 
} 
+3

E la domanda è ...? –

+0

Vuoi metterlo in pausa dopo 2 secondi? O mettere in pausa è il vero problema e non lo vuoi? – tasomaniac

+0

La pausa è il problema reale – user3524002

risposta

0

Il problema può essere perché c'è qualche oggetto sopra com.google.android.youtube.player.YouTubePlayerView o il video ha imbottitura proprietà

6

Non è possibile aggiungere pulsanti come sovrapposizioni sopra il lettore come specificato da Google, altrimenti il ​​lettore si fermerà:

https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerView

Si noti che mentre i video stanno giocando, questa visione ha una dimensione minima di 200x110 dp. Se rendi la visualizzazione più piccola, i video saranno automaticamente interrotti per . Inoltre, non è consentito sovrapporre la vista ad altre viste durante la riproduzione di un video.

Questa vista non supporta il riempimento. Per ottenere lo stesso effetto, avvolgere la vista in un altro ViewGroup o assegnargli i margini.

Il riempimento non è supportato anche su YouTubePlayer.

di sovrapporre la visualizzazione in video, mi consiglia di utilizzare ExoPlayer, Non è parte del SDK di Android, ma è consigliato da google e incluso in Android documentazione per gli sviluppatori:

http://google.github.io/ExoPlayer/

Exoplayer ti consente di riprodurre in streaming qualsiasi tipo di video, non solo i video di Youtubes.

È anche utile ricordare che Exoplayer è utilizzato nell'applicazione YouTube.

+0

mi hai salvato la vita grazie mille <3 –

Problemi correlati