2014-03-04 7 views
2

YouTube API를 사용하여 앱에서 비디오를 재생하고 있습니다.YouTubePlayer를 프로그래밍 방식으로 재생할 수 없습니다.

사용자가 조각을 입력 할 때 비디오를 바로 재생하려고하므로 자동으로 재생하려면 player.play(); 명령을 사용했습니다.) (당신은 PlayerStateChangeListener의 onLoaded()에서 player.play()를 호출 할 필요가

public class YouTubeVideoFragment extends YouTubePlayerFragment{ 

YouTubePlayer player; 

public YouTubeVideoFragment() 
{ 
} 


@Override 
public void onDestroy() 
{ 
    // TODO Auto-generated method stub 
    super.onDestroy(); 
    if(player!= null) 
    { 
     player.release(); 
    } 

} 

@Override 
public void onStop() 
{ 
    // TODO Auto-generated method stub 
    super.onStop(); 
    if(player!= null) 
    { 
     player.release(); 
    } 
} 

public static YouTubeVideoFragment newInstance(String url) 
{ 

    YouTubeVideoFragment f = new YouTubeVideoFragment(); 

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

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

    return f; 
} 

private void init() 
{ 

    initialize("api_key", new OnInitializedListener() { 

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

      Log.e("YouTubeFragment", "Error"); 
     } 

     @Override 
     public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) 
     { 



      if (!wasRestored) 
      { 
       player.cueVideo(getArguments().getString("url")); 
       player.play();//THIS DOESNT WORK!!! 

      } 
     } 
    }); 
} 

}

+0

이 문제를 어떻게 해결하셨습니까? – Jaydev

답변

0

그러나이 명령이 작동하지 않는 것 같습니다 ... 여기

내 코드입니다 . 그래서 여기에 onInitializationSuccess 변경 : 당신의 아이디어가로드 오른쪽 조각의 초기화 후 비디오를 재생하는 것입니다

@Override 
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) 
    { 
     if (!wasRestored) 
     { 
      player.setPlayerStateChangeListener(new PlayerStateChangeListener() { 

      @Override 
      public void onVideoStarted() { 
      } 

      @Override 
      public void onVideoEnded() { 
      } 

      @Override 
      public void onLoading() { 
      } 

      @Override 
      public void onLoaded(String videoId) { 
       player.play(); 
      } 

      @Override 
      public void onError(ErrorReason reason) { 
      } 

      @Override 
      public void onAdStarted() { 
      } 
     }); 
    } 
2

경우, 당신은 단순히 대신 player.cueVideo(videoId)player.loadVideo(videoId)를 사용하고 onLoaded() 후크를해야한다.

loadVideo (문자열 인 videoId) 로드 및 지정된 비디오 재생 :

이 문서에서보세요.

cueVideo (문자열 인 videoId) 로드 지정된 동영상의 미리보기 이미지와 비디오를 재생할 수있는 플레이어를 준비하지만,()를 호출 연주 할 때까지 비디오 스트림 중 하나를을 다운로드하지 않습니다.