Плеер Youtube не показывает все настройки в приложении android - PullRequest
0 голосов
/ 08 апреля 2020

Я использую Youtube SDK для android. Все работает круто. Но когда я щелкаю по верхнему правому пункту меню из интерфейса YouTube, он не показывает все параметры для видео, такие как Скорость воспроизведения , Просмотр в VR и др. c.

Youtube interface in my App.Youtube App

В моем приложении

Нажмите на три точки показывает только один вариант. (изображение слева)

В приложении 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();
        }
    }
}
...