2017-09-07 4 views
0

나는 YouTube Android Player API을 사용하여 youtube live에 관한 프로젝트를하고 있습니다.안드로이드 - YouTubePlayer 라이브 라이브

public class YoutubeLiveActivity extends AppCompatActivity implements YouTubePlayer.OnInitializedListener { 

private Context mContext = this; 
YouTubePlayerSupportFragment youTubePlayerFragment; 
private YouTubePlayer player; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_youtube_live); 

    youTubePlayerFragment = (YouTubePlayerSupportFragment) getSupportFragmentManager().findFragmentById(R.id.youtube_fragment); 
    youTubePlayerFragment.initialize(API_KEY, this); 

} 


private void playVideoAtSelection() { 
    if (!(player == null)) { 
     player.loadVideo(LIVE_ID); 
    } 
} 

@Override 
public void onInitializationSuccess(YouTubePlayer.Provider arg0, YouTubePlayer arg1, boolean arg2) { 
    this.player = arg1; 

    playVideoAtSelection(); 

} 

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

} 

} 

YouTubePlayer에서 실시간을 재생할 수 없으며 "오류가 발생하여 다시 시도합니다."라는 메시지가 표시됩니다. 그러나 정상적인 비디오를 재생할 수 있습니다. 도와주세요!!

********** ********** 업데이트

내가 YouTubePlayer를 라이브 동영상을 재생할 수없는 경우에 대한 문제를 발견했다. YouTube 모바일 버전이 최신 버전이 아니기 때문입니다. 일단 재생 스토어에서 YouTube를 업데이트하면 라이브 비디오가 정상적으로 재생 될 수 있습니다.

답변

0
// Use the Youtube player. 

public class YouTubePlayerActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener { 
    public String videoId = ""; 
    private YouTubePlayer.PlaybackEventListener playbackEventListener = new YouTubePlayer.PlaybackEventListener() { 
     @Override 
     public void onBuffering(boolean arg0) { 
     } 

     @Override 
     public void onPaused() { 
     } 

     @Override 
     public void onPlaying() { 
     } 

     @Override 
     public void onSeekTo(int arg0) { 
     } 

     @Override 
     public void onStopped() { 
     } 
    }; 
    private YouTubePlayer.PlayerStateChangeListener playerStateChangeListener = new YouTubePlayer.PlayerStateChangeListener() { 
     @Override 
     public void onAdStarted() { 
     } 

     @Override 
     public void onError(YouTubePlayer.ErrorReason arg0) { 
     } 

     @Override 
     public void onLoaded(String arg0) { 
     } 

     @Override 
     public void onLoading() { 
     } 

     @Override 
     public void onVideoEnded() { 
      finish(); 
     } 

     @Override 
     public void onVideoStarted() { 
     } 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_you_tube_player); 

     Bundle bundle = getIntent().getExtras(); 
     if (bundle != null) { 
      videoId = bundle.getString(CommonUtils.INTENT_YOUTUBE_VIDEO_ID); 
     } 

     YouTubePlayerView youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_player); 
     youTubePlayerView.initialize(CommonUtils.You_Tube_Api_Key, this); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
    } 

    @Override 
    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult result) { 
     Toast.makeText(this, "Error: Fail to Initialize!", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) { 
     player.setPlayerStateChangeListener(playerStateChangeListener); 
     player.setPlaybackEventListener(playbackEventListener); 
     if (!wasRestored) { 
      player.cueVideo(videoId); 
     } 
    } 
} 

activity_you_tube_player.xml 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <com.google.android.youtube.player.YouTubePlayerView 
     android:id="@+id/youtube_player" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#000" 
     android:padding="0dp" /> 

</LinearLayout> 



Download Youtube jar File From this link, and Copy it into libs folder 
[https://developers.google.com/youtube/android/player/downloads/][1] 
관련 문제