Фрагмент YoutubePlayer играет в фоновом режиме - PullRequest
0 голосов
/ 15 декабря 2018

Я получил сообщение из магазина Google Play, в котором говорится ниже.

Чтобы уточнить, мы определили, что ваше приложение позволяет фоновое воспроизведение видео YouTube (видео YouTube продолжает воспроизводиться после нажатия кнопки питания и экранаотключено), что является нарушением Условий использования API YouTube:

Мое приложение использует YouTubePlayerSupportFragment для воспроизведения данного видео.Глядя на код, я не вижу, где я нарушаю, как упомянуто выше.

Когда я пытался в выключенном режиме экрана телефона, я фактически не слушал воспроизведение видео.

IЯ не уверен, что является причиной нарушения.Из-за этого приложение было закрыто.

Пожалуйста, предложите, если нужно, позаботиться о том, чтобы придерживаться всех правил Youtube и принять обратно в магазине воспроизведения.Вот фрагмент кода реализации:

public class FragmentVideo extends  Fragment implements YouTubePlayer.OnInitializedListener {
    public static final String ARG_SECTION_NUMBER = "section_number";
    public static final String DEFAULT_VIDEO_LINK = "https://www.youtube.com/watch?v=dVzxrPKA8MM";
    public static final String DEFAULT_VIDEO_ID = "dVzxrPKA8MM";
    public static final String YOUTUBE_BASE_LINK ="www.youtube.com/watch?v=";
    private static final int RECOVERY_DIALOG_REQUEST = 1;

    public View rootView;
    public FragmentTransaction ft;
    public String videolink;
    public int loc;
    public YouTubePlayerSupportFragment youTubePlayerFragment;
    public static final String API_KEY = "XXXX-9Ku5SQ476uS9OtZYsWA";
    public static String VIDEO_ID = null;
    private Statelistener Statelistener;
    private eventlistener Events;


    public static FragmentVideo newInstance(String param1, String param2) {
        FragmentVideo fragment = new FragmentVideo();
        Bundle args = new Bundle();
        fragment.setArguments(args);
        return fragment;
    }

    public FragmentVideo() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        Statelistener = new Statelistener();
        Events = new eventlistener();
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        rootView = inflater.inflate(R.layout.fragment_video, container, false);
        TextView tv = (TextView) rootView.findViewById(R.id.videoDetails);

        videolink = getArguments().getString("VIDEOLINK");
        tv.setText("Playing Default video: " + videolink);              

        youTubePlayerFragment = new YouTubePlayerSupportFragment();
        youTubePlayerFragment.initialize(DeveloperKey.DEVELOPER_KEY, this);
        ft = getFragmentManager().beginTransaction();
        ft.replace(R.id.fragment_youtube_player, youTubePlayerFragment);
        ft.commit();

        return rootView;
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        // TODO Auto-generated method stub
        super.onSaveInstanceState(outState);
    }

    @Override
    public void onInitializationFailure(YouTubePlayer.Provider provider,
              YouTubeInitializationResult errorReason) {
        if (errorReason.isUserRecoverableError()) {
                errorReason.getErrorDialog(super.getActivity(), RECOVERY_DIALOG_REQUEST).show();
            } else {
              //String errorMessage = String.format(getString(R.string.error_player), errorReason.toString());
              Toast.makeText(super.getActivity().getApplicationContext(), "error on initialization", Toast.LENGTH_LONG).show();
            }
    }

    @Override
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player,
              boolean wasRestored) {
        player.setPlayerStateChangeListener(Statelistener);
        player.setPlaybackEventListener(Events);
        if (!wasRestored) {
            player.cueVideo(VIDEO_ID);
         }      
    }

    @Override
    public void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
    }

    @Override
    public void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
    }

    @Override
    public void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
    }
}
...