Я использую Youtube SDK для android. Все работает круто. Но когда я щелкаю по верхнему правому пункту меню из интерфейса YouTube, он не показывает все параметры для видео, такие как Скорость воспроизведения , Просмотр в VR и др. c.
В моем приложении
Нажмите на три точки показывает только один вариант. (изображение слева)
В приложении Youtube.
При нажатии на три точки в приложении YouTube отображаются все параметры. (Правое изображение)
Вот мой код
public class YoutubeHomeActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener, View
.OnClickListener {
private YouTubePlayerView youtubePlayerView;
private ImageView backButton;
private ListView mSpeakersList;
private TextView mVideoTitle, mVideoDescription, mVideoTimeStamp;
private SpeakersAdapter mSpeakersAdapter;
public static final String VIDEO_MODEL = "video_model";
VideoModel videoModel;
private TextView watchers;
public String videoId;
public WatchersTask watchersTask;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_new_youtube_home);
try {
videoModel = new VideoModel(new JSONObject(getIntent().getStringExtra(VIDEO_MODEL)));
videoId = videoModel.getVideoID();
} catch (JSONException e) {
e.printStackTrace();
}
youtubePlayerView = findViewById(R.id.youtube_view);
mSpeakersList = findViewById(R.id.speakers_list_view);
youtubePlayerView.initialize(AppConfig.YOUTUBE_API_KEY, this);
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
try {
if (!b) {
youTubePlayer.cueVideo(videoModel.getVideoID());
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
if (youTubeInitializationResult.isUserRecoverableError()) {
youTubeInitializationResult.getErrorDialog(this, TalksAndInterviews.RECOVERY_DIALOG_REQUEST).show();
} else {
String errorMessage = "There was an error initializing the YouTubePlayer" + youTubeInitializationResult.toString();
Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
}
Toast.makeText(getApplicationContext(), youTubeInitializationResult.toString(), Toast.LENGTH_SHORT).show();
}
protected YouTubePlayer.Provider getYouTubePlayerProvider() {
return (YouTubePlayerView) findViewById(R.id.youtube_view);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TalksAndInterviews.RECOVERY_DIALOG_REQUEST) {
// Retry initialization if user performed a recovery action
getYouTubePlayerProvider().initialize(AppConfig.YOUTUBE_API_KEY, this);
}
}
@Override
public void onBackPressed() {
if(watchersTask != null) watchersTask.cancelTask();
super.onBackPressed();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.back_button:
onBackPressed();
break;
}
}
public void refreshViewers(ArrayList<Pair<String, Long>> liveData){
try {
for(Pair<String, Long> liveD : liveData){
if(videoId.equals(liveD.first)) {
watchers.setVisibility(View.VISIBLE);
watchers.setText(BasicFunctions.kConverter(Long.toString(liveD.second)) + " watching now");
}
}
}
catch (Exception e){
e.printStackTrace();
}
}
}