IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Probleme Youtube API V3


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Par défaut Probleme Youtube API V3
    Salut à tous . J'ai remarqué récemment (en mettant à jour l'application youtube ) des soucis sur mon application ( qui utilise l'api youtube v3) : https://play.google.com/store/apps/d...degratte&hl=fr

    En gros, sur la page d'un tuto, lorsque l'on clique sur un tuto dans les suggestions ou alors lorsque l'on quitte et relance l'application, la vidéo ne se lance pas/plus et charge indéfiniment.

    Etant donné que c'est ma première application et que j'programme pas depuis longtemps, j'pensais que ça venait de mon code, qui est plutot un joyeux bordel. Du coup j'ai essayé de reprendre à zero l'activité pour voir au fur et à mesure ce qui pouvait déclencher le probleme.



    J'suis pas aller bien loin avant d'arriver à reproduire l'erreur et du coup, j'me pose des questions sur l'origine du probleme. Voici ce que j'ai refais juste pour les tests et qui m'amene au pb énoncé plus haut : J'ai débuggé tout ça sur ma tablette qui tourne sous 4.1.2 et j'ai pris la derniere version de l'api youtube.

    Le layout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/single_drawer_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:theme="@style/AppTheme"
        tools:context="app.ipsaous.com.coursdegratte.NewSingleActivity">
     
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/ll_container"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
     
            <!-- Bloc de gauche -->
            <LinearLayout
                android:layout_width="0dp"
                android:orientation="vertical"
                android:layout_height="fill_parent"
                android:layout_weight="1">
     
                <fragment
                    android:id="@+id/fragment"
                    android:name="app.ipsaous.com.coursdegratte.fragment.YoutubeFragment"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
     
            </LinearLayout>
     
     
        </LinearLayout>
     
     
        <!-- Inclusion du drawer same_artiste -->
        <include layout="@layout/same_artiste" />
     
    </android.support.v4.widget.DrawerLayout>
    Le fragment Youtube :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    public class YoutubeFragment extends YouTubePlayerFragment implements YouTubePlayer.OnInitializedListener, YouTubePlayer.OnFullscreenListener{
     
        private YouTubePlayer player;
        private String videoId;
        public boolean isFullScreen;
     
        public static YoutubeFragment newInstance() {
            return new YoutubeFragment();
        }
     
        public void setVideoId(final String videoId) {
            if (videoId != null && !videoId.equals(this.videoId)) {
                this.videoId = videoId;
                if (player != null) {
                    player.cueVideo(videoId);
                    Log.d("TEST", "SET VIDEO ID CALLED WITH ID = " + videoId);
                }
            }
        }
     
        @Override
        public void onCreate(Bundle bundle) {
            super.onCreate(bundle);
     
            initialize(getString(R.string.dev_key), this);
     
        }
     
    //    @Override
    //    public void onSaveInstanceState(Bundle bundle) {
    //        super.onSaveInstanceState(bundle);
    //    }
     
     
        @Override
        public void onPause() {
            player.pause();
            super.onPause();
        }
     
        @Override
        public void onDestroy() {
            if (player != null) {
                player.release();
            }
            super.onDestroy();
        }
     
        @Override
        public void onInitializationSuccess(YouTubePlayer.Provider provider, final YouTubePlayer player, boolean b) {
     
            this.player = player;
            //youTubePlayer.setOnFullscreenListener(this);
            //youTubePlayer.setPlaybackEventListener(new PlayerListener());
            //youTubePlayer.setPlayerStateChangeListener(new MyPlayerState());
            Log.d("TEST", "SUCCESS ");
            //youTubePlayer.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT);
            //youTubePlayer.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI);
            //youTubePlayer.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_ORIENTATION);
     
            if (!b && videoId != null) {
               player.cueVideo(videoId);
            }
     
        }
     
        @Override
        public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
     
            if(youTubeInitializationResult.isUserRecoverableError()){
                youTubeInitializationResult.getErrorDialog(getActivity(), 1).show();
            }else{
                String errorMessage = "Erreur lors de l'initialisation du lecteur youtube";
                Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show();
            }
            Log.d("TEST", "FAILURE ");
            this.player = null;
     
        }
    }
    Et l'activity :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    public class NewSingleActivity extends AppCompatActivity implements RequestTuto.GetOneTutoCallback, SuggestionAdapter.SuggestionsCallback {
     
        private YoutubeFragment youtubeFragment;
        private TextView test, test2, tv_single_titre, tv_single_artiste, tv_single_prof, tv_single_style;
        private ImageView menuRight, drapeau;
        private Button btn_tablature;
        private SessionManager sm;
        private RequestQueue queue;
        private DrawerLayout drawerLayout;
        private String videoId;
        private String tutoId;
        private ActionBar actionBar;
        private ActionBarDrawerToggle mDrawerToggle;
        private RequestTuto request;
        private SuggestionAdapter sameArtistAdapter;
        private RecyclerView artistRecycler;
        private Tuto oneTuto;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
     
            actionBar = getSupportActionBar();
            setTitle("");
            setContentView(R.layout.activity_new_single);
            Log.d("TEST", "ON CREATE CALLED");
     
            //Initialisation des vues
            drawerLayout = (DrawerLayout) findViewById(R.id.single_drawer_layout);
     
            sm = new SessionManager(this);
            queue = VolleySingleton.getInstance(this).getRequestQueue();
            youtubeFragment = (YoutubeFragment) getFragmentManager().findFragmentById(R.id.fragment);
            youtubeFragment.setVideoId("pwKkjLOHd7s");
    }
    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.menu_single_tuto, menu);
     
            if(sm.isLogged()){
                MenuItem login = menu.findItem(R.id.action_connexion);
                MenuItem inscription = menu.findItem(R.id.action_inscription);
                login.setVisible(false);
                inscription.setVisible(false);
     
            }else{
                MenuItem logout = menu.findItem(R.id.action_logout);
                MenuItem account = menu.findItem(R.id.action_account);
                logout.setVisible(false);
                account.setVisible(false);
            }
            return true;
        }
     
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
     
            if(mDrawerToggle != null) {
                if (mDrawerToggle.onOptionsItemSelected(item)) {
                    return true;
                }
            }
            return super.onOptionsItemSelected(item);
     
        }
    }
    A noter, que même quand la vidéo ne charge pas, c'est l'initialisationSuccess qui est appelé, l'id de la vidéo est correct également. Du coup, j'poste rarement sur le forums car j'arrive à me débrouiller mais là je bloque pour le moment. Pour info j'ai également essayé avec la version "support" du youtubeFragment pour le même résultat.



    Si vous avez une idée d'ou ca pourrait venir, je suis tout ouïe



    Bonne journée

  2. #2
    Membre habitué
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Par défaut
    Bon, visiblement ca vient de ma tablette car avec les exemples fournit avec la librairie ça me fait pareil.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JavaMail]Probleme avec API JavaMail
    Par spk4ever dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 10/04/2006, 16h39
  2. Probleme Pointeur - API
    Par syannic dans le forum C
    Réponses: 18
    Dernier message: 10/10/2005, 09h51
  3. [EXE] Problème avec Api
    Par Regis.C dans le forum Général Java
    Réponses: 5
    Dernier message: 14/03/2005, 11h09
  4. Probleme D'API WIN32 - NetServerEnum
    Par gnolfy dans le forum C++Builder
    Réponses: 1
    Dernier message: 22/11/2004, 20h39
  5. Probleme connection API C
    Par Biou Pink Powa dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/04/2004, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo